PackagesDuFileReader.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #ifndef ZYPP_PARSER_SUSETAGS_PACKAGESDUFILEREADER_H
00013 #define ZYPP_PARSER_SUSETAGS_PACKAGESDUFILEREADER_H
00014 
00015 #include <iosfwd>
00016 
00017 #include "zypp/parser/susetags/FileReaderBase.h"
00018 
00020 namespace zypp
00021 { 
00022 
00024   namespace data
00025   { 
00026     class Package;
00027     DEFINE_PTR_TYPE(Package);
00028     class SrcPackage;
00029     DEFINE_PTR_TYPE(SrcPackage);
00031   } // namespace data
00033 
00035   namespace parser
00036   { 
00037 
00038     namespace susetags
00039     { 
00040 
00042       //
00043       //        CLASS NAME : PackagesDuFileReader
00044       //
00046       class PackagesDuFileReader : public FileReaderBase
00047       {
00048         public:
00049           typedef function<void(const data::Package_Ptr &)> PkgConsumer;
00050           typedef function<void(const data::SrcPackage_Ptr &)> SrcPkgConsumer;
00051 
00052         public:
00054           PackagesDuFileReader();
00056           virtual ~PackagesDuFileReader();
00057 
00058         public:
00060           void setPkgConsumer( const PkgConsumer & fnc_r )
00061           { _pkgConsumer = fnc_r; }
00062 
00064           void setSrcPkgConsumer( const SrcPkgConsumer & fnc_r )
00065           { _srcPkgConsumer = fnc_r; }
00066 
00067         private:
00069           virtual void beginParse();
00071           virtual void consume( const SingleTagPtr & tag_r );
00073           virtual void consume( const MultiTagPtr & tag_r );
00075           virtual void endParse();
00076 
00077         private:
00078           class Impl;
00079           RW_pointer<Impl,rw_pointer::Scoped<Impl> > _pimpl;
00080           PkgConsumer      _pkgConsumer;
00081           SrcPkgConsumer   _srcPkgConsumer;
00082       };
00084 
00086     } // namespace susetags
00089   } // namespace parser
00092 } // namespace zypp
00094 #endif // ZYPP_PARSER_SUSETAGS_PACKAGESDUFILEREADER_H

Generated on Tue Sep 25 19:23:03 2007 for libzypp by  doxygen 1.5.3