/* * ImportedCmdData.java * * An ImportedCmdData instance is used as the Command implementation * (the cmd member of the WrappedCommand class). * * Copyright (c) 1999 Mo DeJong. * * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL * WARRANTIES. * * Included in SQLite3 port to C# for use in testharness only; 2008 Noah B Hart * * RCS @(#) $Id: ImportedCmdData.java,v 1.1 1999/08/05 03:42:54 mo Exp $ */ using System; namespace tcl.lang { /// Class which is used as the Command implementation inside a WrappedCommand /// that has been imported into another namespace. The cmd member of a Wrapped /// command will be set to an instance of this class when a command is imported. /// From this ImportedCmdData reference, we can find the "real" command from /// another namespace. /// class ImportedCmdData : Command, CommandWithDispose { internal WrappedCommand realCmd; // "Real" command that this imported command // refers to. internal WrappedCommand self; // Pointer to this imported WrappedCommand. Needed // only when deleting it in order to remove // it from the real command's linked list of // imported commands that refer to it. public override string ToString() { return "ImportedCmd for " + realCmd; } /// Called when the command is invoked in the interp. public TCL.CompletionCode cmdProc( Interp interp, TclObject[] objv ) { NamespaceCmd.invokeImportedCmd( interp, this, objv ); return TCL.CompletionCode.RETURN; } /// Called when the command is deleted from the interp. public void disposeCmd() { NamespaceCmd.deleteImportedCmd( this ); } } }