00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00015 #ifndef YUMGroupParser_h 00016 #define YUMGroupParser_h 00017 00018 #include <zypp/parser/yum/YUMParserData.h> 00019 #include <zypp/parser/XMLNodeIterator.h> 00020 #include <zypp/parser/LibXMLHelper.h> 00021 #include <list> 00022 00023 namespace zypp 00024 { 00025 namespace parser 00026 { 00027 namespace yum 00028 { 00029 00052 class YUMGroupParser : public XMLNodeIterator<YUMGroupData_Ptr> 00053 { 00054 public: 00055 YUMGroupParser(std::istream &is, const std::string &baseUrl, parser::ParserProgress::Ptr progress = parser::ParserProgress::Ptr() ); 00056 YUMGroupParser(); 00057 YUMGroupParser(YUMGroupData_Ptr& entry); 00058 virtual ~YUMGroupParser(); 00059 00060 private: 00061 virtual bool isInterested(const xmlNodePtr nodePtr); 00062 virtual YUMGroupData_Ptr process(const xmlTextReaderPtr reader); 00063 void parseGrouplist(YUMGroupData_Ptr dataPtr, 00064 xmlNodePtr node); 00065 void parsePackageList(YUMGroupData_Ptr dataPtr, 00066 xmlNodePtr node); 00067 00068 LibXMLHelper _helper; 00069 }; 00070 } // namespace yum 00071 } // namespace parser 00072 } // namespace zypp 00073 00074 #endif
1.5.0