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
1.5.3