Regina Calculation Engine
Public Member Functions | List of all members
regina::NXMLTreeResolutionTask Class Referenceabstract

An individual task for resolving dangling packet references after an XML data file has been read. More...

#include <packet/nxmltreeresolver.h>

Public Member Functions

virtual ~NXMLTreeResolutionTask ()
 A default construct that does nothing. More...
 
virtual void resolve (const NXMLTreeResolver &resolver)=0
 Called by NXMLTreeResolver after the entire data file has been read. More...
 

Detailed Description

An individual task for resolving dangling packet references after an XML data file has been read.

See the NXMLTreeResolver class notes for an overview of how dangling references and related issues are resolved, and the role that NXMLTreeResolutionTask plays in this process.

Specifically, if an individual NXMLPacketReader cannot completely flesh out the internal data for a packet as the packet is being read, it should construct a new NXMLTreeResolutionTask and queue it to the master NXMLTreeResolver. The NXMLTreeResolver will then call resolve() for each queued task after the complete data file has been read, at which point whatever information was missing when the packet was initially read should now be available.

Each packet reader that requires this machinery should subclass NXMLTreeResolutionTask, and override resolve() to perform whatever "fleshing out" procedure is required for its particular type of packet.

Constructor & Destructor Documentation

regina::NXMLTreeResolutionTask::~NXMLTreeResolutionTask ( )
inlinevirtual

A default construct that does nothing.

Member Function Documentation

virtual void regina::NXMLTreeResolutionTask::resolve ( const NXMLTreeResolver resolver)
pure virtual

Called by NXMLTreeResolver after the entire data file has been read.

Subclasses should override this routine to perform whatever "fleshing out" is necessary for a packet whose internal data is not yet complete.

Parameters
resolverthe master resolver managing the resolution process, as outlined in the NXMLTreeResolver class notes.

The documentation for this class was generated from the following file:

Copyright © 1999-2014, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).