YUMPatchParser.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00015 #ifndef YUMPatchParser_h
00016 #define YUMPatchParser_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 {
00026 namespace parser
00027 {
00028 namespace yum
00029 {
00030 
00051 class YUMPatchParser : public XMLNodeIterator<YUMPatchData_Ptr>
00052 {
00053 public:
00054   YUMPatchParser(std::istream &is, const std::string &baseUrl, parser::ParserProgress::Ptr progress = parser::ParserProgress::Ptr());
00055   YUMPatchParser();
00056   YUMPatchParser(YUMPatchData_Ptr& entry);
00057   virtual ~YUMPatchParser();
00058 
00059 private:
00060   virtual bool isInterested(const xmlNodePtr nodePtr);
00061   virtual YUMPatchData_Ptr process(const xmlTextReaderPtr reader);
00062   void parseAtomsNode(YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode);
00063   void parsePackageNode(YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode);
00064   void parseMessageNode(YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode);
00065   void parseScriptNode(YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode);
00066   void parseFormatNode(YUMPatchPackage *dataPtr, xmlNodePtr formatNode);
00067   void parsePkgFilesNode(YUMPatchPackage *dataPtr, xmlNodePtr formatNode);
00068   void parsePkgPlainRpmNode(YUMPatchPackage *dataPtr, xmlNodePtr formatNode);
00069   void parsePkgPatchRpmNode(YUMPatchPackage *dataPtr, xmlNodePtr formatNode);
00070   void parsePkgDeltaRpmNode(YUMPatchPackage *dataPtr, xmlNodePtr formatNode);
00071   void parsePkgPatchBaseVersionNode(YUMPatchBaseVersion *dataPtr, xmlNodePtr formatNode);
00072   void parsePkgDeltaBaseVersionNode(YUMDeltaBaseVersion *dataPtr, xmlNodePtr formatNode);
00073   LibXMLHelper _helper;
00074   Arch _zypp_architecture;
00075 };
00076 } // namespace yum
00077 } // namespace parser
00078 } // namespace zypp
00079 
00080 #endif

Generated on Tue Nov 28 16:49:30 2006 for zypp by  doxygen 1.5.0