class Poco::XML::DOMObject

Overview

The base class for all objects in the Document Object Model. More…

#include <DOMObject.h>

class DOMObject
{
public:
    // methods

    void
    duplicate() const;

    void
    release() const;

    virtual
    void
    autoRelease() = 0;
};

// direct descendants

class Event;
class EventTarget;
class NamedNodeMap;
class NodeList;

Detailed Documentation

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 explicitely 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.

Construction

virtual
~DOMObject()

Destroys the DOMObject.

Methods

void
duplicate() const

Increases the object’s reference count.

void
release() const

Decreases the object’s reference count.

If the reference count reaches zero, the object is deleted.

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.