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