00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PARSER_TAGFILE_SELECTIONTAGFILEPARSER_H 00013 #define ZYPP_PARSER_TAGFILE_SELECTIONTAGFILEPARSER_H 00014 00015 #include <iosfwd> 00016 #include <set> 00017 #include <map> 00018 #include <list> 00019 00020 #include "zypp/parser/tagfile/TagFileParser.h" 00021 #include "zypp/parser/tagfile/ParseException.h" 00022 #include "zypp/Selection.h" 00023 #include "zypp/source/susetags/SuseTagsSelectionImpl.h" 00024 00025 #include "zypp/ZYppFactory.h" 00026 #include "zypp/Pathname.h" 00027 #include "zypp/Source.h" 00028 00030 namespace zypp 00031 { 00032 00033 namespace source 00034 { 00035 00036 namespace susetags 00037 { 00038 00040 // 00041 // CLASS NAME : SelectionTagFileParser 00042 // 00044 struct SelectionTagFileParser : public zypp::parser::tagfile::TagFileParser 00045 { 00046 Selection::Ptr result; 00047 detail::ResImplTraits<SuseTagsSelectionImpl>::Ptr selImpl; 00048 00049 SelectionTagFileParser(); 00050 virtual ~SelectionTagFileParser() 00051 {} 00052 00053 void consume( const SingleTag &tag ); 00054 void consume( const MultiTag &tag ); 00055 void endParse(); 00056 00057 private: 00058 ZYpp::LocaleSet _locales; 00059 }; 00061 Selection::Ptr parseSelection( Source_Ref source_r, const Pathname & file_r ); 00063 } // namespace source 00066 } // namespace susetags 00069 } // namespace zypp 00071 // 00072 #endif // ZYPP_PARSER_TAGFILE_SELECTIONTAGFILEPPARSER_H