YUMPrimaryParser.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00015 #ifndef YUMPrimaryParser_h
00016 #define YUMPrimaryParser_h
00017 
00018 #include <zypp/parser/yum/YUMParserData.h>
00019 #include <zypp/parser/XMLNodeIterator.h>
00020 #include <zypp/parser/LibXMLHelper.h>
00021 #include <zypp/Arch.h>
00022 #include <list>
00023 
00024 namespace zypp {
00025   namespace parser {
00026     namespace yum {
00027 
00048       class YUMPrimaryParser : public XMLNodeIterator<YUMPrimaryData_Ptr>
00049       {
00050       public:
00051         YUMPrimaryParser(std::istream &is, const std::string &baseUrl);
00052         YUMPrimaryParser();
00053         YUMPrimaryParser(YUMPrimaryData_Ptr& entry);
00054         virtual ~YUMPrimaryParser();
00055     
00056       private:
00057         // FIXME move needed method to a common class, inherit it
00058         friend class YUMPatchParser;
00059         friend class YUMProductParser;
00060         friend class YUMPatternParser;
00061         virtual bool isInterested(const xmlNodePtr nodePtr);
00062         virtual YUMPrimaryData_Ptr process(const xmlTextReaderPtr reader);
00063         void parseFormatNode(YUMPrimaryData_Ptr dataPtr,
00064                              xmlNodePtr formatNode);
00065         void parseDependencyEntries(std::list<YUMDependency> *depList, 
00066                                     xmlNodePtr depNode);
00067         void parseAuthorEntries(std::list<std::string> *authors,
00068                                 xmlNodePtr node);
00069         void parseKeywordEntries(std::list<std::string> *keywords,
00070                                  xmlNodePtr node);
00071         void parseDirsizeEntries(std::list<YUMDirSize> *sizes,
00072                                  xmlNodePtr node);
00073     
00074         LibXMLHelper _helper;
00075         Arch _zypp_architecture;
00076       };
00077     } // namespace yum
00078   } // namespace parser
00079 } // namespace zypp
00080 
00081 #endif

Generated on Thu Jul 6 00:07:21 2006 for zypp by  doxygen 1.4.6