00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_REPO_REPOFILEREADER_H 00013 #define ZYPP_REPO_REPOFILEREADER_H 00014 00015 #include <iosfwd> 00016 00017 #include "zypp/base/PtrTypes.h" 00018 #include "zypp/RepoInfo.h" 00019 #include "zypp/ProgressData.h" 00020 00022 namespace zypp 00023 { 00024 00025 namespace parser 00026 { 00027 00041 class RepoFileReader 00042 { 00043 friend std::ostream & operator<<( std::ostream & str, const RepoFileReader & obj ); 00044 public: 00045 00054 typedef function< bool( const RepoInfo & )> ProcessRepo; 00055 00057 class Impl; 00058 00059 public: 00071 RepoFileReader( const Pathname & repo_file, 00072 const ProcessRepo & callback, 00073 const ProgressData::ReceiverFnc &progress = ProgressData::ReceiverFnc() ); 00074 00078 ~RepoFileReader(); 00079 private: 00080 ProcessRepo _callback; 00081 }; 00083 00085 std::ostream & operator<<( std::ostream & str, const RepoFileReader & obj ); 00086 00088 } // namespace parser 00091 } // namespace zypp 00093 #endif // ZYPP_REPO_REPOFILEREADER_H