#include <TCLCompatibilityProcessor.h>
...
class CTCLCompatibilityProcessor : public CTCLObjectProcessor
{
public:
CTCLCompatibilityProcessor(CTCLProcessor& actualCommand);
virtual ~CTCLCompatibilityProcessor();
virtual int operator()(CTCLInterpreter& interp,
std::vector<CTCLObject>& objv);
virtual void onUnregister();
};
Note that the information on this page is only to be used to
"grandfather" old CTCLProcessor objects
into Tcl. New command processors should be based on the
CTCLObjectProcessor.
A rewrite of the TCL++ library in March 2006 eliminated the use of
Tcl functions that are scheduled to be deprecated in the known future
of Tcl. One set of functions scheduled for deprecation are those
that revolve around direct access to the Tcl interpreter result, and
command processors that use the argc,
argv interfaces.
Since a number of existing command extensions are, no doubt built on
top of the CTCLProcessor argc
argv
interface, a mechanism that allows the use of existing commands was built
as well.
The current implementation of a CTCLProcessor includes
as member data a CTCLCompatibilityProcessor object.
This object registers itself as a CTCLObjectProcessor
for the command intended by the CTCLProcessor and
serves as an adaptor between these two command types, marshalling command
objects into an argc, argv pair,
creating and committing a CTCLResult object.
For most users of this library, this is completely transparent, this documentation is provided for completeness, however.
CTCLCompatibilityProcessor(CTCLProcessor&actualCommand);
Constructs a compatibility processor that adapts the object based command
interface for actualCommand. actualCommand
must already be bound to an interpreter.
virtual intoperator()(CTCLInterpreter&interp, std::vector<CTCLObject>&objv);
Called when the command is executed. objv is marshalled
into an argc, argv pair. A CTCLResult is created and the
actual command's operator() is called to execute the command.
On return, the result is committed, and all dynamic storage released prior to
returning the status from the command processor.
virtual void onUnregister();
Called when the command is unregistered. The actual command's OnDelete
member is called.