Library: XML
Package: DOM
Header: Poco/DOM/DOMObject.h
Description
The base class for all objects in the Document Object Model.
DOMObject defines the rules for memory management in this implementation of the DOM. Violation of these rules, which are outlined in the following, results in memory leaks or dangling pointers.
Every object created by new or by a factory method (for example, Document::create*) must be released with a call to release() or autoRelease() when it is no longer needed.
Every object created by cloning or importing another object must be released. For every call to duplicate() there must be a matching call to release(). An object obtained via any other way must not be released, except ownership of it has been explicitly taken with a call to duplicate().
While DOMObjects are safe for use in multithreaded programs, a DOMObject or one of its subclasses must not be accessed from multiple threads simultaneously.
Inheritance
Known Derived Classes: AbstractContainerNode, AbstractNode, Attr, AttrMap, CDATASection, CharacterData, Comment, ChildNodesList, DTDMap, Document, DocumentFragment, DocumentType, Element, ElementsByTagNameList, ElementsByTagNameListNS, Entity, EntityReference, Event, EventTarget, MutationEvent, NamedNodeMap, Node, NodeList, Notation, ProcessingInstruction, Text
Member Summary
Member Functions: autoRelease, duplicate, release
Constructors
DOMObject
DOMObject();
Creates the DOMObject. The object's reference count is initialized to one.
Destructor
~DOMObject
virtual ~DOMObject();
Destroys the DOMObject.
Member Functions
autoRelease
virtual void autoRelease() = 0;
Adds the object to an appropriate AutoReleasePool, which is usually the AutoReleasePool managed by the Document to which this object belongs.
duplicate
void duplicate() const;
Increases the object's reference count.
release
void release() const;
Decreases the object's reference count. If the reference count reaches zero, the object is deleted.