PackagesLangFileReader.h

Go to the documentation of this file.
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

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