00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PARSER_SUSETAGS_PACKAGESLANGFILEREADER_H 00013 #define ZYPP_PARSER_SUSETAGS_PACKAGESLANGFILEREADER_H 00014 00015 #include <iosfwd> 00016 00017 #include "zypp/parser/susetags/FileReaderBase.h" 00018 #include "zypp/Locale.h" 00019 00021 namespace zypp 00022 { 00023 00025 namespace data 00026 { 00027 class Package; 00028 DEFINE_PTR_TYPE(Package); 00029 class SrcPackage; 00030 DEFINE_PTR_TYPE(SrcPackage); 00032 } // namespace data 00034 00036 namespace parser 00037 { 00038 00039 namespace susetags 00040 { 00041 00043 // 00044 // CLASS NAME : PackagesLangFileReader 00045 // 00047 class PackagesLangFileReader : public FileReaderBase 00048 { 00049 public: 00050 typedef function<void(const data::Package_Ptr &)> PkgConsumer; 00051 typedef function<void(const data::SrcPackage_Ptr &)> SrcPkgConsumer; 00052 00053 public: 00055 PackagesLangFileReader(); 00057 virtual ~PackagesLangFileReader(); 00058 00059 public: 00061 void setLocale( const Locale & locale_r ) 00062 { _locale = locale_r; } 00063 00065 void setPkgConsumer( const PkgConsumer & fnc_r ) 00066 { _pkgConsumer = fnc_r; } 00067 00069 void setSrcPkgConsumer( const SrcPkgConsumer & fnc_r ) 00070 { _srcPkgConsumer = fnc_r; } 00071 00072 private: 00074 virtual void beginParse(); 00076 virtual void consume( const SingleTagPtr & tag_r ); 00078 virtual void consume( const MultiTagPtr & tag_r ); 00080 virtual void endParse(); 00081 00082 private: 00083 class Impl; 00084 RW_pointer<Impl,rw_pointer::Scoped<Impl> > _pimpl; 00085 Locale _locale; 00086 PkgConsumer _pkgConsumer; 00087 SrcPkgConsumer _srcPkgConsumer; 00088 }; 00090 00092 } // namespace susetags 00095 } // namespace parser 00098 } // namespace zypp 00100 #endif // ZYPP_PARSER_SUSETAGS_PACKAGESLANGFILEREADER_H
1.5.3