|
Regina Calculation Engine
|
A packet that can hold a PDF document. More...
#include <packet/pdf.h>
Public Types | |
| enum | OwnershipPolicy { OWN_MALLOC , OWN_NEW , DEEP_COPY } |
| Describes how a PDF packet should claim ownership of a block of binary data. More... | |
| typedef Packet | SafePointeeType |
| The type of object being pointed to. More... | |
Public Member Functions | |
| PDF () | |
| Creates a PDF packet with no document stored. More... | |
| PDF (const char *filename) | |
| Creates a PDF packet with data read from the given PDF file. More... | |
| PDF (char *data, size_t size, OwnershipPolicy alloc) | |
| Creates a packet to store the given PDF data. More... | |
| ~PDF () | |
| Destroys this PDF packet and deallocates data if required. More... | |
| bool | isNull () const |
| Determines whether this packet is currently holding a PDF document. More... | |
| const char * | data () const |
| Returns a pointer to the block of raw data that forms this PDF document. More... | |
| size_t | size () const |
| Returns the size of this PDF document in bytes. More... | |
| void | reset () |
| Empties this PDF packet so that no document is stored. More... | |
| void | reset (char *data, size_t size, OwnershipPolicy alloc) |
| Refills this PDF packet with the given PDF data. More... | |
| bool | savePDF (const char *filename) const |
| Saves this PDF document to the given file in PDF format. More... | |
| virtual void | writeTextShort (std::ostream &out) const override |
| Writes a short text representation of this object to the given output stream. More... | |
| virtual bool | dependsOnParent () const override |
| Determines if this packet depends upon its parent. More... | |
| std::string | str () const |
| Returns a short text representation of this object. More... | |
| std::string | utf8 () const |
| Returns a short text representation of this object using unicode characters. More... | |
| std::string | detail () const |
| Returns a detailed text representation of this object. More... | |
| bool | hasSafePtr () const |
| Is there one or more SafePtr currently pointing to this object? More... | |
Packet Identification | |
| virtual PacketType | type () const =0 |
| Returns the unique integer ID representing this type of packet. More... | |
| virtual std::string | typeName () const =0 |
| Returns an English name for this type of packet. More... | |
| const std::string & | label () const |
| Returns the label associated with this individual packet. More... | |
| std::string | humanLabel () const |
| Returns the label associated with this individual packet, adjusted if necessary for human-readable output. More... | |
| std::string | adornedLabel (const std::string &adornment) const |
| Returns the label of this packet adorned with the given string. More... | |
| void | setLabel (const std::string &label) |
| Sets the label associated with this individual packet. More... | |
| std::string | fullName () const |
| Returns a descriptive text string for the packet. More... | |
Tags | |
| bool | hasTag (const std::string &tag) const |
| Determines whether this packet has the given associated tag. More... | |
| bool | hasTags () const |
| Determines whether this packet has any associated tags at all. More... | |
| bool | addTag (const std::string &tag) |
| Associates the given tag with this packet. More... | |
| bool | removeTag (const std::string &tag) |
| Removes the association of the given tag with this packet. More... | |
| void | removeAllTags () |
| Removes all associated tags from this packet. More... | |
| const std::set< std::string > & | tags () const |
| Returns the set of all tags associated with this packet. More... | |
Event Handling | |
| bool | listen (PacketListener *listener) |
| Registers the given packet listener to listen for events on this packet. More... | |
| bool | isListening (PacketListener *listener) |
| Determines whether the given packet listener is currently listening for events on this packet. More... | |
| bool | unlisten (PacketListener *listener) |
| Unregisters the given packet listener so that it no longer listens for events on this packet. More... | |
Tree Queries | |
| Packet * | parent () const |
| Determines the parent packet in the tree structure. More... | |
| Packet * | firstChild () const |
| Determines the first child of this packet in the tree structure. More... | |
| Packet * | lastChild () const |
| Determines the last child of this packet in the tree structure. More... | |
| Packet * | nextSibling () const |
| Determines the next sibling of this packet in the tree structure. More... | |
| Packet * | prevSibling () const |
| Determines the previous sibling of this packet in the tree structure. More... | |
| Packet * | root () const |
| Determines the root of the tree to which this packet belongs. More... | |
| unsigned | levelsDownTo (const Packet *descendant) const |
| Counts the number of levels between this packet and its given descendant in the tree structure. More... | |
| unsigned | levelsUpTo (const Packet *ancestor) const |
| Counts the number of levels between this packet and its given ancestor in the tree structure. More... | |
| bool | isGrandparentOf (const Packet *descendant) const |
| Determines if this packet is equal to or an ancestor of the given packet in the tree structure. More... | |
| size_t | countChildren () const |
| Returns the number of immediate children of this packet. More... | |
| size_t | countDescendants () const |
| Returns the total number of strict descendants of this packet. More... | |
| size_t | totalTreeSize () const |
| Determines the total number of packets in the tree or subtree for which this packet is matriarch. More... | |
Tree Manipulation | |
| void | insertChildFirst (Packet *child) |
| Inserts the given packet as the first child of this packet. More... | |
| void | insertChildLast (Packet *child) |
| Inserts the given packet as the last child of this packet. More... | |
| void | insertChildAfter (Packet *newChild, Packet *prevChild) |
| Inserts the given packet as a child of this packet at the given location in this packet's child list. More... | |
| void | makeOrphan () |
| Cuts this packet away from its parent in the tree structure and instead makes it matriarch of its own tree. More... | |
| void | reparent (Packet *newParent, bool first=false) |
| Cuts this packet away from its parent in the tree structure, and inserts it as a child of the given packet instead. More... | |
| void | transferChildren (Packet *newParent) |
| Cuts all of this packet's children out of the packet tree, and reinserts them as children of the given packet instead. More... | |
| void | swapWithNextSibling () |
| Swaps this packet with its next sibling in the sequence of children beneath their common parent packet. More... | |
| void | moveUp (unsigned steps=1) |
| Moves this packet the given number of steps towards the beginning of its sibling list. More... | |
| void | moveDown (unsigned steps=1) |
| Moves this packet the given number of steps towards the end of its sibling list. More... | |
| void | moveToFirst () |
| Moves this packet to be the first in its sibling list. More... | |
| void | moveToLast () |
| Moves this packet to be the last in its sibling list. More... | |
| void | sortChildren () |
| Sorts the immediate children of this packet according to their packet labels. More... | |
Searching and Iterating | |
| SubtreeIterator | begin () |
| Returns an iterator at the beginning of the range of packets in the subtree rooted at this packet. More... | |
| SubtreeIterator | end () |
| Returns an iterator beyond the end of the range of packets in the subtree rooted at this packet. More... | |
| PacketDescendants | descendants () const |
| Returns a lightweight object for iterating through all strict descendants of this packet in the packet tree. More... | |
| PacketChildren | children () const |
| Returns a lightweight object for iterating through the immediate children of this packet. More... | |
| Packet * | nextTreePacket () |
| Finds the next packet after this in a complete depth-first iteration of the entire tree structure to which this packet belongs. More... | |
| const Packet * | nextTreePacket () const |
| Finds the next packet after this in a complete depth-first iteration of the entire tree structure to which this packet belongs. More... | |
| Packet * | nextTreePacket (const std::string &type) |
| Finds the next packet after this of the requested type in a complete depth-first iteration of the entire tree structure. More... | |
| const Packet * | nextTreePacket (const std::string &type) const |
| Finds the next packet after this of the requested type in a complete depth-first iteration of the entire tree structure. More... | |
| Packet * | firstTreePacket (const std::string &type) |
| Finds the first packet of the requested type in a complete depth-first iteration of the tree structure. More... | |
| const Packet * | firstTreePacket (const std::string &type) const |
| Finds the first packet of the requested type in a complete depth-first iteration of the tree structure. More... | |
| Packet * | findPacketLabel (const std::string &label) |
| Finds the packet with the requested label in the tree or subtree for which this packet is matriarch. More... | |
| const Packet * | findPacketLabel (const std::string &label) const |
| Finds the packet with the requested label in the tree or subtree for which this packet is matriarch. More... | |
Packet Dependencies | |
| bool | isPacketEditable () const |
| Determines whether this packet can be altered without invalidating or otherwise upsetting any of its immediate children. More... | |
Cloning | |
| Packet * | clone (bool cloneDescendants=false, bool end=true) const |
| Clones this packet (and possibly its descendants), assigns to it a suitable unused label and inserts the clone into the tree as a sibling of this packet. More... | |
Static Public Member Functions | |
| static XMLPacketReader * | xmlReader (Packet *parent, XMLTreeResolver &resolver) |
Constructors and Destructors | |
| static void | safeDelete (Packet *p) |
| Either destroys or orphans the given packet, according to whether it has safe pointers that currently reference it. More... | |
Protected Member Functions | |
| virtual Packet * | internalClonePacket (Packet *parent) const override |
| Makes a newly allocated copy of this packet. More... | |
| virtual void | writeXMLPacketData (std::ostream &out) const override |
| Writes a chunk of XML containing the data for this packet only. More... | |
File I/O | |
| bool | save (const char *filename, bool compressed=true) const |
| Saves the subtree rooted at this packet to the given Regina data file, using Regina's native XML file format. More... | |
| bool | save (std::ostream &s, bool compressed=true) const |
| Writes the subtree rooted at this packet to the given output stream, in the format of a Regina XML data file. More... | |
| void | writeXMLFile (std::ostream &out) const |
| Writes the subtree rooted at this packet to the given output stream in Regina's native XML file format. More... | |
| std::string | internalID () const |
| Returns a unique string ID that identifies this packet. More... | |
| virtual void | writeTextLong (std::ostream &out) const |
| Writes a detailed text representation of this object to the given output stream. More... | |
| bool | hasOwner () const |
| Indicates whether some other object in the calculation engine is responsible for ultimately destroying this object. More... | |
| void | writeXMLPacketTree (std::ostream &out) const |
| Writes a chunk of XML containing the subtree with this packet as matriarch. More... | |
A packet that can hold a PDF document.
This packet may or may not contain a PDF document at any given time. This can be tested by calling isNull(), and can be changed by calling reset().
|
inherited |
The type of object being pointed to.
|
inherited |
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
|
inlineinherited |
Is there one or more SafePtr currently pointing to this object?
|
inherited |
Returns a short text representation of this object.
This text should be human-readable, should fit on a single line, and should not end with a newline. Where possible, it should use plain ASCII characters.
str().
|
inherited |
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should fit on a single line, and should not end with a newline. In addition, it may use unicode characters to make the output more pleasant to read. This string will be encoded in UTF-8.