#include <TCLPackagedObjectProcessor.h>
class CTCLPackagedObjectProcessor {CTCLPackagedObjectProcessor(CTCLInterpreter& interp, std::string command, bool registerMe = true);void onAttach(CTCLObjectPackage* package);protected CTCLObjectPackage* getPackage();protected virtual void Initialize();}
A packaged object command is a CTCLObjectProcessor
that can draw on a set of services shared between it and a
set of related commands. The set of commands and the common set
of services is called a package.
The CTCLPackagedObjectProcessor class
described here provides a base class for such commands. The base
class provides mechanisms for the package to associate the object
that contains the shared services with the command, and a mechanism
for the subclass that actually implements real commands to access this
associated object.
CTCLPackagedObjectProcessor(CTCLInterpreter& interp, std::string command, bool registerMe = true);
Construct the object. The parameters are the same as for
a CTCLObjectProcessor;
interp is a reference to the TCL interpreter
to which the command will be added. command
is the command keyword that will invoke the object's
operator().
regsiterMe is
true if the
command should be registered on the interpreter immediately
(this is usually the case and hence the parameter is optional,
defaulting to true
void onAttach(CTCLObjectPackage* package);
This method is called by the package when the command object is
added to the package. package is a pointer
to the package object, which contains its shared services.
This is saved and can be retrieved by subclass objects via
getPackage.
protected CTCLObjectPackage* getPackage();
Returns the package object pointer supplied to
onAttach
by the package. Normally this will need to be cast to a
specific concrete package type by the caller so that its methods
can be accessed.
If called prior to the
onAttach call, this returns
a null pointer.
protected virtual void Initialize();
Called by onAttach after the
package has been saved (and is therefore accessible by
getPackage. This does nothing in the
base class but can be overidden in subclasses to allow
for initialization that requires access to the package services.