#include <YUMPatchParser.h>
Inheritance diagram for zypp::parser::yum::YUMPatchParser:

Public Member Functions | |
| YUMPatchParser (std::istream &is, const std::string &baseUrl, parser::ParserProgress::Ptr progress=parser::ParserProgress::Ptr()) | |
| YUMPatchParser () | |
| YUMPatchParser (YUMPatchData_Ptr &entry) | |
| virtual | ~YUMPatchParser () |
Private Member Functions | |
| virtual bool | isInterested (const xmlNodePtr nodePtr) |
| filter for the xml nodes The derived class decides which xml nodes it is actually interested in. | |
| virtual YUMPatchData_Ptr | process (const xmlTextReaderPtr reader) |
| process an xml node The derived class has to produce the ENTRYTYPE object here. | |
| void | parseAtomsNode (YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode) |
| void | parsePackageNode (YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode) |
| void | parseMessageNode (YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode) |
| void | parseScriptNode (YUMPatchData_Ptr dataPtr, xmlNodePtr formatNode) |
| void | parseFormatNode (YUMPatchPackage *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgFilesNode (YUMPatchPackage *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgPlainRpmNode (YUMPatchPackage *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgPatchRpmNode (YUMPatchPackage *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgDeltaRpmNode (YUMPatchPackage *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgPatchBaseVersionNode (YUMPatchBaseVersion *dataPtr, xmlNodePtr formatNode) |
| void | parsePkgDeltaBaseVersionNode (YUMDeltaBaseVersion *dataPtr, xmlNodePtr formatNode) |
Private Attributes | |
| LibXMLHelper | _helper |
| Arch | _zypp_architecture |
Here's an example:
for (YUMPatchParser iter(anIstream, baseUrl), iter != YUMOtherParser.end(), // or: iter() != 0, or ! iter.atEnd() ++iter) { doSomething(*iter) }
The iterator owns the pointer (i.e., caller must not delete it) until the next ++ operator is called. At this time, it will be destroyed (and a new ENTRYTYPE is created.)
If the input is fundamentally flawed so that it makes no sense to continue parsing, XMLNodeIterator will log it and consider the input as finished. You can query the exit status with errorStatus().
Definition at line 51 of file YUMPatchParser.h.
| zypp::parser::yum::YUMPatchParser::YUMPatchParser | ( | std::istream & | is, | |
| const std::string & | baseUrl, | |||
| parser::ParserProgress::Ptr | progress = parser::ParserProgress::Ptr() | |||
| ) |
Definition at line 36 of file YUMPatchParser.cc.
References zypp::parser::XMLNodeIteratorBase::fetchNext().
| zypp::parser::yum::YUMPatchParser::YUMPatchParser | ( | ) |
Definition at line 43 of file YUMPatchParser.cc.
| zypp::parser::yum::YUMPatchParser::YUMPatchParser | ( | YUMPatchData_Ptr & | entry | ) |
Definition at line 47 of file YUMPatchParser.cc.
| zypp::parser::yum::YUMPatchParser::~YUMPatchParser | ( | ) | [virtual] |
Definition at line 33 of file YUMPatchParser.cc.
| bool zypp::parser::yum::YUMPatchParser::isInterested | ( | const xmlNodePtr | nodePtr | ) | [private, virtual] |
filter for the xml nodes The derived class decides which xml nodes it is actually interested in.
For each that is selected, process() will be called an the resulting ENTRYTYPE object used as the next value for the iterator. Documentation for the node structure can be found in the libxml2 documentation. Have a look at LibXMLHelper to access node attributes and contents.
| nodePtr | points to the xml node in question. Only the node is available, not the subtree. See libxml2 documentation. |
Implements zypp::parser::XMLNodeIterator< YUMPatchData_Ptr >.
Definition at line 55 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::isElement(), and zypp::parser::LibXMLHelper::name().
| YUMPatchData_Ptr zypp::parser::yum::YUMPatchParser::process | ( | const xmlTextReaderPtr | reader | ) | [private, virtual] |
process an xml node The derived class has to produce the ENTRYTYPE object here.
Details about the xml reader is in the libxml2 documentation. You'll most probably want to use xmlTextReaderExpand(reader) to request the full subtree, and then use the links in the resulting node structure to traverse, and class LibXMLHelper to access the attributes and element contents. fetchNext() cannot throw an error since it will be called in the constructor. Instead, in case of a fundamental syntax error the error is saved and will be thrown with the next checkError().
| readerPtr | points to the xmlTextReader that reads the xml stream. |
Implements zypp::parser::XMLNodeIterator< YUMPatchData_Ptr >.
Definition at line 62 of file YUMPatchParser.cc.
References _helper, _zypp_architecture, zypp::parser::LibXMLHelper::attribute(), zypp::parser::LibXMLHelper::content(), DBG, zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, parseAtomsNode(), zypp::parser::yum::YUMPrimaryParser::parseDependencyEntries(), zypp::parser::LibXMLHelper::positionInfo(), WAR, xml_assert, and ZYPP_CAUGHT.
| void zypp::parser::yum::YUMPatchParser::parseAtomsNode | ( | YUMPatchData_Ptr | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 199 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, parseMessageNode(), parsePackageNode(), parseScriptNode(), zypp::parser::LibXMLHelper::positionInfo(), WAR, xml_assert, and XXX.
Referenced by process().
| void zypp::parser::yum::YUMPatchParser::parsePackageNode | ( | YUMPatchData_Ptr | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 551 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::LibXMLHelper::content(), zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, parseFormatNode(), parsePkgFilesNode(), zypp::parser::LibXMLHelper::positionInfo(), WAR, and XXX.
Referenced by parseAtomsNode().
| void zypp::parser::yum::YUMPatchParser::parseMessageNode | ( | YUMPatchData_Ptr | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 762 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::LibXMLHelper::content(), zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, zypp::parser::yum::YUMPrimaryParser::parseDependencyEntries(), zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parseAtomsNode().
| void zypp::parser::yum::YUMPatchParser::parseScriptNode | ( | YUMPatchData_Ptr | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 649 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::LibXMLHelper::content(), zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, zypp::parser::yum::YUMPrimaryParser::parseDependencyEntries(), zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parseAtomsNode().
| void zypp::parser::yum::YUMPatchParser::parseFormatNode | ( | YUMPatchPackage * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 233 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMPatchPackage::authors, zypp::parser::yum::YUMPatchPackage::buildhost, zypp::parser::yum::YUMObjectData::conflicts, zypp::parser::LibXMLHelper::content(), zypp::parser::yum::YUMPatchPackage::dirSizes, zypp::parser::yum::YUMObjectData::enhances, zypp::parser::yum::YUMPatchPackage::files, zypp::parser::yum::YUMObjectData::freshens, zypp::parser::yum::YUMPatchPackage::group, zypp::parser::yum::YUMPatchPackage::headerEnd, zypp::parser::yum::YUMPatchPackage::headerStart, zypp::parser::yum::YUMPatchPackage::installOnly, zypp::parser::LibXMLHelper::isElement(), zypp::parser::yum::YUMPatchPackage::keywords, zypp::parser::yum::YUMPatchPackage::license, zypp::parser::LibXMLHelper::name(), name, zypp::parser::yum::YUMObjectData::obsoletes, zypp::parser::yum::YUMPrimaryParser::parseAuthorEntries(), zypp::parser::yum::YUMPrimaryParser::parseDependencyEntries(), zypp::parser::yum::YUMPrimaryParser::parseDirsizeEntries(), zypp::parser::yum::YUMPrimaryParser::parseKeywordEntries(), zypp::parser::LibXMLHelper::positionInfo(), zypp::parser::yum::YUMObjectData::prerequires, zypp::parser::yum::YUMObjectData::provides, zypp::parser::yum::YUMObjectData::recommends, zypp::parser::yum::YUMObjectData::requires, zypp::parser::yum::YUMPatchPackage::sourcerpm, zypp::parser::yum::YUMObjectData::suggests, zypp::parser::yum::YUMObjectData::supplements, zypp::parser::yum::YUMPatchPackage::vendor, WAR, and xml_assert.
Referenced by parsePackageNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgFilesNode | ( | YUMPatchPackage * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 513 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::isElement(), zypp::parser::LibXMLHelper::name(), name, parsePkgDeltaRpmNode(), parsePkgPatchRpmNode(), parsePkgPlainRpmNode(), zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parsePackageNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgPlainRpmNode | ( | YUMPatchPackage * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 348 of file YUMPatchParser.cc.
References _helper, zypp::parser::yum::YUMPlainRpm::arch, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMPlainRpm::buildtime, zypp::parser::yum::YUMPlainRpm::downloadsize, zypp::parser::yum::YUMPlainRpm::filename, zypp::parser::LibXMLHelper::isElement(), zypp::parser::yum::YUMPlainRpm::md5sum, zypp::parser::LibXMLHelper::name(), name, zypp::parser::yum::YUMPatchPackage::plainRpms, zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parsePkgFilesNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgPatchRpmNode | ( | YUMPatchPackage * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 373 of file YUMPatchParser.cc.
References _helper, zypp::parser::yum::YUMPatchRpm::arch, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMPatchRpm::baseVersions, zypp::parser::yum::YUMPatchRpm::buildtime, zypp::parser::yum::YUMPatchRpm::checksum, zypp::parser::yum::YUMPatchRpm::checksumType, zypp::parser::LibXMLHelper::content(), zypp::parser::yum::YUMPatchRpm::downloadsize, zypp::parser::yum::YUMPatchRpm::filename, zypp::parser::LibXMLHelper::isElement(), zypp::parser::yum::YUMPatchRpm::location, zypp::parser::yum::YUMPatchRpm::md5sum, zypp::parser::yum::YUMPatchRpm::media, zypp::parser::LibXMLHelper::name(), name, parsePkgPatchBaseVersionNode(), zypp::parser::yum::YUMPatchPackage::patchRpms, zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parsePkgFilesNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgDeltaRpmNode | ( | YUMPatchPackage * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 433 of file YUMPatchParser.cc.
References _helper, zypp::parser::yum::YUMDeltaRpm::arch, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMDeltaRpm::baseVersion, zypp::parser::yum::YUMDeltaRpm::buildtime, zypp::parser::yum::YUMDeltaRpm::checksum, zypp::parser::yum::YUMDeltaRpm::checksumType, zypp::parser::LibXMLHelper::content(), zypp::parser::yum::YUMPatchPackage::deltaRpms, zypp::parser::yum::YUMDeltaRpm::downloadsize, zypp::parser::yum::YUMDeltaRpm::filename, zypp::parser::LibXMLHelper::isElement(), zypp::parser::yum::YUMDeltaRpm::location, zypp::parser::yum::YUMDeltaRpm::md5sum, zypp::parser::yum::YUMDeltaRpm::media, zypp::parser::LibXMLHelper::name(), name, parsePkgDeltaBaseVersionNode(), zypp::parser::LibXMLHelper::positionInfo(), and WAR.
Referenced by parsePkgFilesNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgPatchBaseVersionNode | ( | YUMPatchBaseVersion * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 492 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMPatchBaseVersion::edition, zypp::parser::yum::YUMEdition::epoch, zypp::parser::yum::YUMEdition::rel, and zypp::parser::yum::YUMEdition::ver.
Referenced by parsePkgPatchRpmNode().
| void zypp::parser::yum::YUMPatchParser::parsePkgDeltaBaseVersionNode | ( | YUMDeltaBaseVersion * | dataPtr, | |
| xmlNodePtr | formatNode | |||
| ) | [private] |
Definition at line 501 of file YUMPatchParser.cc.
References _helper, zypp::parser::LibXMLHelper::attribute(), zypp::parser::yum::YUMDeltaBaseVersion::buildtime, zypp::parser::yum::YUMDeltaBaseVersion::edition, zypp::parser::yum::YUMEdition::epoch, zypp::parser::yum::YUMDeltaBaseVersion::md5sum, zypp::parser::yum::YUMEdition::rel, zypp::parser::yum::YUMDeltaBaseVersion::sequence_info, and zypp::parser::yum::YUMEdition::ver.
Referenced by parsePkgDeltaRpmNode().
Definition at line 73 of file YUMPatchParser.h.
Referenced by isInterested(), parseAtomsNode(), parseFormatNode(), parseMessageNode(), parsePackageNode(), parsePkgDeltaBaseVersionNode(), parsePkgDeltaRpmNode(), parsePkgFilesNode(), parsePkgPatchBaseVersionNode(), parsePkgPatchRpmNode(), parsePkgPlainRpmNode(), parseScriptNode(), and process().
1.5.0