00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00013 #ifndef XMLProductParser_h 00014 #define XMLProductParser_h 00015 00016 #include "zypp/parser/xmlstore/XMLParserData.h" 00017 #include "zypp/parser/xmlstore/XMLResObjectParser.h" 00018 #include "zypp/parser/XMLNodeIterator.h" 00019 #include "zypp/parser/LibXMLHelper.h" 00020 #include <list> 00021 00022 namespace zypp { 00023 namespace parser { 00024 namespace xmlstore { 00025 00026 class XMLProductParser : public XMLNodeIterator<XMLProductData_Ptr>, public XMLResObjectParser 00027 { 00028 public: 00029 XMLProductParser(std::istream &is, const std::string &baseUrl); 00030 XMLProductParser(); 00031 XMLProductParser(XMLProductData_Ptr &entry); 00032 virtual ~XMLProductParser(); 00033 00034 private: 00035 void parseProductFlags( XMLProductData_Ptr productPtr, xmlNodePtr node); 00036 void parseUpdateUrls( XMLProductData_Ptr productPtr, xmlNodePtr node); 00037 virtual bool isInterested(const xmlNodePtr nodePtr); 00038 virtual XMLProductData_Ptr process(const xmlTextReaderPtr reader); 00039 }; 00040 } // namespace yum 00041 } // namespace parser 00042 } // namespace zypp 00043 00044 #endif