00001 00002 00003 #ifndef YUMPrimaryParser_h 00004 #define YUMPrimaryParser_h 00005 00006 #include <y2pm/YUMParserData.h> 00007 #include <y2util/XMLNodeIterator.h> 00008 #include <y2util/LibXMLHelper.h> 00009 #include <list> 00010 00011 namespace YUM { 00012 00033 class YUMPrimaryParser : public XMLNodeIterator<YUMPrimaryDataPtr> 00034 { 00035 public: 00036 YUMPrimaryParser(std::istream &is, const std::string &baseUrl); 00037 YUMPrimaryParser(); 00038 YUMPrimaryParser(YUMPrimaryDataPtr& entry); 00039 virtual ~YUMPrimaryParser(); 00040 00041 private: 00042 virtual bool isInterested(const xmlNodePtr nodePtr); 00043 virtual YUMPrimaryDataPtr process(const xmlTextReaderPtr reader); 00044 void parseFormatNode(YUMPrimaryDataPtr dataPtr, 00045 xmlNodePtr formatNode); 00046 void parseDependencyEntries(std::list<YUMDependency> *depList, 00047 xmlNodePtr depNode); 00048 void parseAuthorEntries(std::list<std::string> *authors, 00049 xmlNodePtr node); 00050 void parseKeywordEntries(std::list<std::string> *keywords, 00051 xmlNodePtr node); 00052 void parseDirsizeEntries(std::list<YUMDirSize> *sizes, 00053 xmlNodePtr node); 00054 00055 LibXMLHelper _helper; 00056 }; 00057 } 00058 00059 #endif
1.4.4