#include <nxmlpacketreader.h>
Inheritance diagram for regina::NXMLPacketReader:
Public Member Functions | |
NXMLPacketReader () | |
Creates a new packet element reader. | |
virtual NPacket * | getPacket () |
Returns the newly allocated packet that has been read by this element reader. | |
virtual NXMLElementReader * | startContentSubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps) |
Used instead of startSubElement() for XML subelements that are not child packets or packet tags. | |
virtual void | endContentSubElement (const std::string &subTagName, NXMLElementReader *subReader) |
Used instead of endSubElement() for XML subelements that are not child packets or packet tags. | |
virtual NXMLElementReader * | startSubElement (const std::string &subTagName, const regina::xml::XMLPropertyDict &subTagProps) |
Signifies that a subelement of this XML element is about to be parsed. | |
virtual void | endSubElement (const std::string &subTagName, NXMLElementReader *subReader) |
Signifies that parsing has finished for a subelement of this XML element. | |
virtual void | abort (NXMLElementReader *subReader) |
Signifies that XML parsing has been aborted. |
Generally a subclass of NXMLPacketReader will be used to receive and store packets that you care about. However, if you simply wish to ignore a particular packet (and all of its descendants), you can use class NXMLPacketReader itself for the packet(s) you wish to ignore.
Routine getPacket() is used to return the packet that was read; see its documentation for further notes on how the packet should be constructed.
Routines startSubElement() and endSubElement() should not be overridden by derived classes. They determine whether the subelement is another packet element or a packet tag; if so then they deal with the subelement themselves (packet elements will be read using a new NXMLPacketReader of the correct type), and if not then they call startContentSubElement() and endContentSubElement() which should be overridden for processing of non-packet XML subelements.
If routine abort() is overridden, it must at some point call NXMLPacketReader::abort() which will destroy whatever new packets have already been created.
|
Creates a new packet element reader.
|
|
Signifies that XML parsing has been aborted. This element reader will be destroyed shortly after this routine is called. The default implementation does nothing.
Reimplemented from regina::NXMLElementReader. |
|
Used instead of endSubElement() for XML subelements that are not child packets or packet tags. The default implementation does nothing.
Reimplemented in regina::NXMLAngleStructureListReader, regina::NXMLScriptReader, regina::NXMLTextReader, regina::NXMLFilterPacketReader, regina::NXMLNormalSurfaceListReader, and regina::NXMLTriangulationReader. |
|
Signifies that parsing has finished for a subelement of this XML element. The default implementation does nothing.
Reimplemented from regina::NXMLElementReader. |
|
Returns the newly allocated packet that has been read by this element reader. Deallocation of this new packet is not the responsibility of this class. Once this routine gives a non-zero return value, it should continue to give the same non-zero return value from this point onwards. If this routine is ever to give a non-zero return value, it must be giving that non-zero return value by the time the first child packet or packet tag is encountered; otherwise child packets will not be inserted into the packet tree and/or packet tags will not be added. The newly allocated packet should not be given a packet label. This will be done by NXMLPacketReader::endSubElement(). The newly allocated packet may or may not be inserted in the packet tree structure; this does not matter (although if it is inserted it must be inserted in the correct place). The newly allocated packet should not be given any associated packet tags. This will be done by NXMLPacketReader::startSubElement(). The default implementation returns 0.
Reimplemented in regina::NXMLAngleStructureListReader, regina::NXMLContainerReader, regina::NXMLScriptReader, regina::NXMLTextReader, regina::NXMLFilterPacketReader, regina::NXMLNormalSurfaceListReader, and regina::NXMLTriangulationReader. |
|
Used instead of startSubElement() for XML subelements that are not child packets or packet tags. The default implementation returns a new NXMLElementReader which can be used to ignore the subelement completely.
Reimplemented in regina::NXMLAngleStructureListReader, regina::NXMLScriptReader, regina::NXMLTextReader, regina::NXMLFilterPacketReader, regina::NXMLNormalSurfaceListReader, and regina::NXMLTriangulationReader. |
|
Signifies that a subelement of this XML element is about to be parsed. The default implementation returns a new NXMLElementReader which can be used to ignore the subelement completely.
Reimplemented from regina::NXMLElementReader. |