oasys::TclCommand Class Reference

#include <TclCommand.h>

Inheritance diagram for oasys::TclCommand:

oasys::Logger dtn::APICommand dtn::BundleCommand dtn::DiscoveryCommand dtn::InterfaceCommand dtn::LinkCommand dtn::ParamCommand dtn::ProphetCommand dtn::RegistrationCommand dtn::RouteCommand dtn::ShutdownCommand dtn::StorageCommand dtn::TestCommand DTNBindCommand DTNCloseCommand DTNOpenCommand DTNRecvCommand DTNRegisterCommand DTNSendCommand dtnsim::ConnCommand dtnsim::NodeCommand dtnsim::SimCommand DTNUnbindCommand DTNUnregisterCommand oasys::AutoTclCommand oasys::ConsoleCommand oasys::DebugCommand oasys::HelpCommand oasys::LogCommand ShutdownCommand List of all members.

Detailed Description

Extend this class to provide the command hooks for a specific module.

Register commands with Command::instance()->reg() or use the AutoTclCommand class.

The "set" command is automatically defined for a module. Set is used to change the value of variable which are bound using the bind_* functions defined below.

Definition at line 241 of file TclCommand.h.

Public Member Functions

 TclCommand (const char *name, const char *theNamespace=0)
 Constructor.
virtual ~TclCommand ()
virtual int exec (int objc, Tcl_Obj **objv, Tcl_Interp *interp)
 Override this to get the arguments as raw tcl objects.
virtual int exec (int argc, const char **argv, Tcl_Interp *interp)
 Override this to parse the list of arguments as strings.
virtual int cmd_info (Tcl_Interp *interp)
 Handles the "info" command which prints out the value of the bound variables for a TclCommand.
virtual int cmd_set (int objc, Tcl_Obj **objv, Tcl_Interp *interp)
 Internal handling of the "set" command.
const char * name () const
 Get the name of the module.
virtual const char * help_string ()
 Return the help string for this command.
bool hasBindings ()
 Does this command have any bindings?

Protected Types

typedef std::map< std::string,
Opt * > 
BindingTable
 Type for the table of variable bindings.

Protected Member Functions

void bind_var (Opt *opt)
 Bind an option to the set command.
void unbind (const char *name)
 Unbind a variable.
void set_result (const char *result)
 Set the TclResult string.
void set_objresult (Tcl_Obj *obj)
 Set a Tcl_Obj as the result.
void append_result (const char *result)
 Append the TclResult string.
void resultf (const char *fmt,...)
 Format and set the TclResult string.
void append_resultf (const char *fmt,...)
 Format and set the TclResult string.
void wrong_num_args (int objc, const char **objv, int parsed, int min, int max)
 Useful function for generating error strings indicating that the wrong number of arguments were passed to the command.
void wrong_num_args (int objc, Tcl_Obj **objv, int parsed, int min, int max)
 Useful function for generating error strings indicating that the wrong number of arguments were passed to the command.
void add_to_help (const char *subcmd, const char *help_str)
 Append the given information to the current help string, typically used for a set of alternatives for subcommands.

Protected Attributes

std::string name_
 Name of the module.
StringBuffer help_
 Help string.
bool do_builtins_
 Set to false if a module doesn't want builtin commands like "set".
BindingTable bindings_
 The table of registered bindings.

Friends

class TclCommandInterp


Member Typedef Documentation

typedef std::map<std::string, Opt*> oasys::TclCommand::BindingTable [protected]

Type for the table of variable bindings.

Definition at line 319 of file TclCommand.h.


Constructor & Destructor Documentation

oasys::TclCommand::TclCommand ( const char *  name,
const char *  theNamespace = 0 
)

Constructor.

Parameters:
name Name of the module
theNamespace Optional tcl namespace

Definition at line 738 of file TclCommand.cc.

oasys::TclCommand::~TclCommand (  )  [virtual]

Definition at line 751 of file TclCommand.cc.


Member Function Documentation

int oasys::TclCommand::exec ( int  objc,
Tcl_Obj **  objv,
Tcl_Interp *  interp 
) [virtual]

Override this to get the arguments as raw tcl objects.

Parameters:
objc Argument count
objv Argument values
interp Tcl interpreter
Returns:
0 on success, -1 on error

Reimplemented in dtn::BundleCommand.

Definition at line 761 of file TclCommand.cc.

int oasys::TclCommand::exec ( int  argc,
const char **  argv,
Tcl_Interp *  interp 
) [virtual]

Override this to parse the list of arguments as strings.

Parameters:
argc Argument count
argv Argument values
interp Tcl interpreter
Returns:
0 on success, -1 on error

Reimplemented in DTNOpenCommand, DTNCloseCommand, DTNRegisterCommand, DTNUnregisterCommand, DTNSendCommand, DTNBindCommand, DTNUnbindCommand, DTNRecvCommand, ShutdownCommand, oasys::DebugCommand, oasys::HelpCommand, oasys::LogCommand, dtn::DiscoveryCommand, dtn::InterfaceCommand, dtn::LinkCommand, dtn::ProphetCommand, dtn::RegistrationCommand, dtn::RouteCommand, dtn::ShutdownCommand, dtn::StorageCommand, dtn::TestCommand, dtnsim::ConnCommand, dtnsim::NodeCommand, dtnsim::SimCommand, and dtnsim::Simdtn2Command.

Definition at line 775 of file TclCommand.cc.

int oasys::TclCommand::cmd_info ( Tcl_Interp *  interp  )  [virtual]

Handles the "info" command which prints out the value of the bound variables for a TclCommand.

Parameters:
interp Tcl interperter

Definition at line 802 of file TclCommand.cc.

int oasys::TclCommand::cmd_set ( int  objc,
Tcl_Obj **  objv,
Tcl_Interp *  interp 
) [virtual]

Internal handling of the "set" command.

Parameters:
objc Argument count
objv Argument values
interp Tcl interpreter
Returns:
0 on success, -1 on error

Definition at line 819 of file TclCommand.cc.

const char* oasys::TclCommand::name (  )  const [inline]

Get the name of the module.

Definition at line 296 of file TclCommand.h.

References name_.

Referenced by add_to_help(), dtnsim::SimCommand::exec(), dtn::RouteCommand::exec(), dtnsim::NodeCommand::exec(), dtn::LinkCommand::exec(), dtn::InterfaceCommand::exec(), and dtn::DiscoveryCommand::exec().

virtual const char* oasys::TclCommand::help_string (  )  [inline, virtual]

Return the help string for this command.

Definition at line 301 of file TclCommand.h.

References oasys::StringBuffer::c_str(), and help_.

bool oasys::TclCommand::hasBindings (  )  [inline]

Does this command have any bindings?

Definition at line 306 of file TclCommand.h.

References bindings_.

void oasys::TclCommand::bind_var ( Opt opt  )  [protected]

Bind an option to the set command.

Definition at line 863 of file TclCommand.cc.

Referenced by dtn::APICommand::APICommand(), dtn::TestCommand::bind_vars(), dtnsim::ConnCommand::ConnCommand(), oasys::ConsoleCommand::ConsoleCommand(), oasys::LogCommand::LogCommand(), dtn::ParamCommand::ParamCommand(), dtn::ProphetCommand::ProphetCommand(), dtn::RouteCommand::RouteCommand(), dtnsim::SimCommand::SimCommand(), and dtn::StorageCommand::StorageCommand().

void oasys::TclCommand::unbind ( const char *  name  )  [protected]

Unbind a variable.

Definition at line 885 of file TclCommand.cc.

void oasys::TclCommand::set_result ( const char *  result  )  [inline, protected]

Set the TclResult string.

Definition at line 339 of file TclCommand.h.

References oasys::TclCommandInterp::instance(), and oasys::TclCommandInterp::set_result().

Referenced by dtn::RouteCommand::exec(), dtn::RegistrationCommand::exec(), dtnsim::NodeCommand::exec(), oasys::LogCommand::exec(), dtn::LinkCommand::exec(), dtn::InterfaceCommand::exec(), oasys::HelpCommand::exec(), dtn::DiscoveryCommand::exec(), and dtn::BundleCommand::exec().

void oasys::TclCommand::set_objresult ( Tcl_Obj *  obj  )  [inline, protected]

Set a Tcl_Obj as the result.

Definition at line 347 of file TclCommand.h.

References oasys::TclCommandInterp::instance(), and oasys::TclCommandInterp::set_objresult().

Referenced by dtn::RegistrationCommand::exec(), and dtn::BundleCommand::exec().

void oasys::TclCommand::append_result ( const char *  result  )  [inline, protected]

Append the TclResult string.

Definition at line 355 of file TclCommand.h.

References oasys::TclCommandInterp::append_result(), and oasys::TclCommandInterp::instance().

Referenced by oasys::HelpCommand::exec().

void oasys::TclCommand::resultf ( const char *  fmt,
  ... 
) [protected]

Format and set the TclResult string.

Definition at line 785 of file TclCommand.cc.

Referenced by dtn::TestCommand::exec(), dtn::StorageCommand::exec(), dtnsim::SimCommand::exec(), dtn::RouteCommand::exec(), dtn::RegistrationCommand::exec(), dtn::ProphetCommand::exec(), dtnsim::NodeCommand::exec(), oasys::LogCommand::exec(), dtn::LinkCommand::exec(), dtn::InterfaceCommand::exec(), oasys::HelpCommand::exec(), DTNRecvCommand::exec(), DTNUnbindCommand::exec(), DTNBindCommand::exec(), DTNSendCommand::exec(), DTNUnregisterCommand::exec(), DTNRegisterCommand::exec(), DTNCloseCommand::exec(), DTNOpenCommand::exec(), dtn::DiscoveryCommand::exec(), oasys::DebugCommand::exec(), dtnsim::ConnCommand::exec(), and dtn::BundleCommand::exec().

void oasys::TclCommand::append_resultf ( const char *  fmt,
  ... 
) [protected]

Format and set the TclResult string.

Definition at line 793 of file TclCommand.cc.

Referenced by dtn::LinkCommand::exec(), and oasys::HelpCommand::exec().

void oasys::TclCommand::wrong_num_args ( int  objc,
const char **  objv,
int  parsed,
int  min,
int  max 
) [inline, protected]

Useful function for generating error strings indicating that the wrong number of arguments were passed to the command.

Parameters:
objc original argument count to the command
objv original argument vector to the command
parsed number of args to include in error string
min minimum number of expected args
max maximum number of expected args (or INT_MAX)

Definition at line 380 of file TclCommand.h.

References oasys::TclCommandInterp::instance().

Referenced by dtnsim::Simdtn2Command::exec(), dtnsim::SimCommand::exec(), dtn::ShutdownCommand::exec(), dtn::RouteCommand::exec(), dtn::RegistrationCommand::exec(), dtnsim::NodeCommand::exec(), oasys::LogCommand::exec(), dtn::LinkCommand::exec(), dtn::InterfaceCommand::exec(), oasys::HelpCommand::exec(), DTNRecvCommand::exec(), DTNUnbindCommand::exec(), DTNBindCommand::exec(), DTNSendCommand::exec(), DTNUnregisterCommand::exec(), DTNRegisterCommand::exec(), DTNCloseCommand::exec(), DTNOpenCommand::exec(), dtn::DiscoveryCommand::exec(), dtnsim::ConnCommand::exec(), dtn::BundleCommand::exec(), and wrong_num_args().

void oasys::TclCommand::wrong_num_args ( int  objc,
Tcl_Obj **  objv,
int  parsed,
int  min,
int  max 
) [inline, protected]

Useful function for generating error strings indicating that the wrong number of arguments were passed to the command.

Parameters:
objc original argument count to the command
objv original argument vector to the command
parsed number of args to include in error string
min minimum number of expected args
max maximum number of expected args (or INT_MAX)

Definition at line 397 of file TclCommand.h.

References oasys::TclCommandInterp::instance(), and wrong_num_args().

void oasys::TclCommand::add_to_help ( const char *  subcmd,
const char *  help_str 
) [inline, protected]

Append the given information to the current help string, typically used for a set of alternatives for subcommands.

Definition at line 408 of file TclCommand.h.

References oasys::StringBuffer::append(), oasys::StringBuffer::appendf(), help_, and name().

Referenced by dtn::BundleCommand::BundleCommand(), dtnsim::ConnCommand::ConnCommand(), oasys::DebugCommand::DebugCommand(), dtn::DiscoveryCommand::DiscoveryCommand(), oasys::HelpCommand::HelpCommand(), dtn::InterfaceCommand::InterfaceCommand(), dtn::LinkCommand::LinkCommand(), oasys::LogCommand::LogCommand(), dtnsim::NodeCommand::NodeCommand(), dtn::ProphetCommand::ProphetCommand(), dtn::RegistrationCommand::RegistrationCommand(), dtn::RouteCommand::RouteCommand(), dtn::ShutdownCommand::ShutdownCommand(), dtn::StorageCommand::StorageCommand(), and dtn::TestCommand::TestCommand().


Friends And Related Function Documentation

friend class TclCommandInterp [friend]

Definition at line 309 of file TclCommand.h.


Member Data Documentation

std::string oasys::TclCommand::name_ [protected]

Name of the module.

Definition at line 311 of file TclCommand.h.

Referenced by name().

StringBuffer oasys::TclCommand::help_ [protected]

Help string.

Definition at line 312 of file TclCommand.h.

Referenced by add_to_help(), and help_string().

bool oasys::TclCommand::do_builtins_ [protected]

Set to false if a module doesn't want builtin commands like "set".

Definition at line 313 of file TclCommand.h.

BindingTable oasys::TclCommand::bindings_ [protected]

The table of registered bindings.

Definition at line 324 of file TclCommand.h.

Referenced by hasBindings().


The documentation for this class was generated from the following files:
Generated on Thu Jun 7 16:57:02 2007 for DTN Reference Implementation by  doxygen 1.5.1