C:/quickbuild-1.2.13/working/root/Docs/TGEA_Offline_Docs/checkouts/engine/source/console/console.h File Reference

#include "platform/platform.h"
#include "core/bitSet.h"
#include <stdarg.h>
#include "core/util/journal/journaledSignal.h"

Namespaces

namespace  Con

Classes

struct  ConsoleLogEntry
 Represents an entry in the log. More...
struct  EnumTable
 Scripting engine representation of an enum. More...
struct  EnumTable::Enums
 This represents a specific item in the enumeration. More...
class  ConsoleConstructor
 This is the backend for the ConsoleMethod()/ConsoleFunction() macros. More...

Console Execution

These are functions relating to the execution of script code.

#define ARG   const char*
#define ARG   const char*
const char * Con::execute (S32 argc, const char *argv[])
 Call a script function from C/C++ code.
const char * Con::executef (ARG)
const char * Con::executef (ARG, ARG)
const char * Con::executef (ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::execute (SimObject *object, S32 argc, const char *argv[])
 Call a Torque Script member function of a SimObject from C/C++ code.
const char * Con::executef (SimObject *, ARG)
const char * Con::executef (SimObject *, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::executef (SimObject *, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG)
const char * Con::evaluate (const char *string, bool echo=false, const char *fileName=NULL)
 Evaluate an arbitrary chunk of code.
const char * Con::evaluatef (const char *string,...)
 Evaluate an arbitrary line of script.

Global Console Definition Macros

Note:
If TORQUE_DEBUG is defined, then we gather documentation information, and do some extra sanity checks.
See also:
ConsoleConstructor Console Auto-Documentation


#define DECLARE_CONSOLE_CALLBACK(theType, name, args)   virtual theType name args
 Define a C++ method that calls back to script on an object.
#define conmethod_return_const   return (const
#define conmethod_return_S32   return (S32
#define conmethod_return_F32   return (F32
#define conmethod_nullify(val)
#define conmethod_return_void   conmethod_nullify(void
#define conmethod_return_bool   return (bool
#define ConsoleFunctionGroupBegin(groupName, usage)   static ConsoleConstructor gConsoleFunctionGroup##groupName##__GroupBegin(NULL,#groupName,usage);
#define ConsoleFunction(name, returnType, minArgs, maxArgs, usage1)
#define ConsoleToolFunction(name, returnType, minArgs, maxArgs, usage1)
#define ConsoleFunctionGroupEnd(groupName)   static ConsoleConstructor gConsoleFunctionGroup##groupName##__GroupEnd(NULL,#groupName,NULL);
#define ConsoleNamespace(className, usage)   static ConsoleConstructor className##__Namespace(#className, usage);
#define ConsoleMethodGroupBegin(className, groupName, usage)   static ConsoleConstructor className##groupName##__GroupBegin(#className,#groupName,usage);
#define ConsoleMethod(className, name, returnType, minArgs, maxArgs, usage1)
#define ConsoleStaticMethod(className, name, returnType, minArgs, maxArgs, usage1)
#define ConsoleMethodGroupEnd(className, groupName)   static ConsoleConstructor className##groupName##__GroupEnd(#className,#groupName,NULL);

Console Consumers

The console distributes its output through Torque by using consumers. Every time a new line is printed to the console, all the ConsumerCallbacks registered using addConsumer are called, in order.

Note:
The GuiConsole control, which provides the on-screen in-game console, uses a different technique to render the console. It calls getLockLog() to lock the Vector of on-screen console entries, then it renders them as needed. While the Vector is locked, the console will not change the Vector. When the GuiConsole control is done with the console entries, it calls unlockLog() to tell the console that it is again safe to modify the Vector.
See also:
TelnetConsole

TelnetDebugger

WinConsole

MacCarbConsole

StdConsole

ConsoleLogger



typedef JournaledSignal< void(RawData)> Con::ConsoleInputEvent
void Con::addConsumer (ConsumerCallback cb)
void Con::removeConsumer (ConsumerCallback cb)
ConsoleInputEvent Con::smConsoleInput
 Called from the native consoles to provide lines of console input to process.

Control Functions

The console must be initialized and shutdown appropriately during the lifetime of the app. These functions are used to manage this behavior.

Note:
Torque deals with this aspect of console management, so you don't need to call these functions in normal usage of the engine.


void Con::init ()
 Initializes the console.
void Con::shutdown ()
 Shuts down the console.
bool Con::isActive ()
 Is the console active at this time?

Miscellaneous

void Con::stripColorChars (char *line)
 Remove color marking information from a string.
bool Con::expandScriptFilename (char *filename, U32 size, const char *src)
 Convert from a relative script path to an absolute script path.
bool Con::expandGameScriptFilename (char *filename, U32 size, const char *src)
bool Con::expandToolScriptFilename (char *filename, U32 size, const char *src)
bool Con::collapseScriptFilename (char *filename, U32 size, const char *src)
bool Con::isCurrentScriptToolScript ()
StringTableEntry Con::getModNameFromPath (const char *path)
bool Con::isFunction (const char *fn)
 Returns true if fn is a global scripting function.
U32 Con::tabComplete (char *inputBuffer, U32 cursorPos, U32 maxResultLength, bool forwardTab)
 This is the basis for tab completion in the console.

Variable Management

bool Con::addVariable (const char *name, S32 type, void *pointer)
 Add a console variable that references the value of a variable in C++ code.
bool Con::removeVariable (const char *name)
 Remove a console variable.
void Con::setLocalVariable (const char *name, const char *value)
 Assign a string value to a locally scoped console variable.
const char * Con::getLocalVariable (const char *name)
 Retrieve the string value to a locally scoped console variable.

Global Variable Accessors

Assign a string value to a global console variable
Parameters:
name Global console variable name to set
value String value to assign to this variable.


void Con::setVariable (const char *name, const char *value)
const char * Con::getVariable (const char *name)
 Retrieve the string value of a global console variable.
void Con::setBoolVariable (const char *name, bool var)
 Same as setVariable(), but for bools.
bool Con::getBoolVariable (const char *name, bool def=false)
 Same as getVariable(), but for bools.
void Con::setIntVariable (const char *name, S32 var)
 Same as setVariable(), but for ints.
S32 Con::getIntVariable (const char *name, S32 def=0)
 Same as getVariable(), but for ints.
void Con::setFloatVariable (const char *name, F32 var)
 Same as setVariable(), but for floats.
F32 Con::getFloatVariable (const char *name, F32 def=.0f)
 Same as getVariable(), but for floats.

Global Function Registration

void Con::addCommand (const char *name, StringCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 Register a C++ function with the console making it a global function callable from the scripting engine.
void Con::addCommand (const char *name, IntCallback cb, const char *usage, S32 minArgs, S32 maxArg, bool toolOnly=false)
 
void Con::addCommand (const char *name, FloatCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 
void Con::addCommand (const char *name, VoidCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 
void Con::addCommand (const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 

Namespace Function Registration

void Con::addCommand (const char *nameSpace, const char *name, StringCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 Register a C++ function with the console making it callable as a method of the given namespace from the scripting engine.
void Con::addCommand (const char *nameSpace, const char *name, IntCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 
void Con::addCommand (const char *nameSpace, const char *name, FloatCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 
void Con::addCommand (const char *nameSpace, const char *name, VoidCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 
void Con::addCommand (const char *nameSpace, const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs, bool toolOnly=false)
 

Special Purpose Registration

These are special-purpose functions that exist to allow commands to be grouped, so that when we generate console docs, they can be more meaningfully presented.

Click here for more information about console docs and grouping.

void Con::markCommandGroup (const char *nsName, const char *name, const char *usage=NULL)
void Con::beginCommandGroup (const char *nsName, const char *name, const char *usage)
void Con::endCommandGroup (const char *nsName, const char *name)
void Con::noteScriptCallback (const char *className, const char *funcName, const char *usage)
void Con::addOverload (const char *nsName, const char *name, const char *altUsage)

Console Output

These functions process the formatted string and pass it to all the ConsumerCallbacks that are currently registered. The console log file and the console window callbacks are installed by default.

See also:
addConsumer()

removeConsumer()



void Con::printf (const char *_format,...)
void Con::warnf (const char *_format,...)
void Con::errorf (const char *_format,...)
void Con::warnf (ConsoleLogEntry::Type type, const char *_format,...)
void Con::errorf (ConsoleLogEntry::Type type, const char *_format,...)

Console Function Implementation Helpers

The functions Con::getIntArg, Con::getFloatArg and Con::getArgBuffer(size) are used to allocate on the console stack string variables that will be passed into the next console

char * Con::getReturnBuffer (U32 bufferSize)
char * Con::getReturnBuffer (const char *stringToCopy)
char * Con::getArgBuffer (U32 bufferSize)
char * Con::getFloatArg (F64 arg)
char * Con::getIntArg (S32 arg)

Namespaces

NamespaceCon::lookupNamespace (const char *nsName)
bool Con::linkNamespaces (const char *parentName, const char *childName)
bool Con::unlinkNamespaces (const char *parentName, const char *childName)
bool Con::classLinkNamespaces (Namespace *parent, Namespace *child)

Logging

void Con::getLockLog (ConsoleLogEntry *&log, U32 &size)
void Con::unlockLog (void)
void Con::setLogMode (S32 mode)

Dynamic Type System

void Con::setData (S32 type, void *dptr, S32 index, S32 argc, const char **argv, const EnumTable *tbl=NULL, BitSet32 flag=0)
const char * Con::getData (S32 type, void *dptr, S32 index, const EnumTable *tbl=NULL, BitSet32 flag=0)

Typedefs

typedef const char * StringTableEntry
typedef const char *(*) StringCallback (SimObject *obj, S32 argc, const char *argv[])
typedef S32(*) IntCallback (SimObject *obj, S32 argc, const char *argv[])
typedef F32(*) FloatCallback (SimObject *obj, S32 argc, const char *argv[])
typedef void(*) VoidCallback (SimObject *obj, S32 argc, const char *argv[])
typedef bool(*) BoolCallback (SimObject *obj, S32 argc, const char *argv[])
typedef void(*) ConsumerCallback (ConsoleLogEntry::Level level, const char *consoleLine)
typedef const char *(*) GetDataFunction (void *dptr, EnumTable *tbl, BitSet32 flag)
typedef void(*) SetDataFunction (void *dptr, S32 argc, const char **argv, EnumTable *tbl, BitSet32 flag)

Enumerations

enum  StringTableConstants { StringTagPrefixByte = 0x01 }
enum  Con::Constants {
  Con::DSOVersion = 43,
  Con::MaxLineLength = 512,
  Con::MaxDataTypes = 256
}
 Various configuration constants. More...

Functions

bool Con::isMainThread ()
 Returns true when called from the main thread, false otherwise.
void expandEscape (char *dest, const char *src)
bool collapseEscape (char *buf)
S32 HashPointer (StringTableEntry ptr)

Variables

bool gWarnUndefinedScriptVariables
 Indicates that warnings about undefined script variables should be displayed.


Define Documentation

#define ARG   const char*

See also:
execute(S32 argc, const char* argv[])

#define ARG   const char*

See also:
execute(S32 argc, const char* argv[])

#define DECLARE_CONSOLE_CALLBACK ( theType,
name,
args   )     virtual theType name args

Define a C++ method that calls back to script on an object.

See also:
consoleCallback.h

#define conmethod_return_const   return (const

#define conmethod_return_S32   return (S32

#define conmethod_return_F32   return (F32

#define conmethod_nullify ( val   ) 

#define conmethod_return_void   conmethod_nullify(void

#define conmethod_return_bool   return (bool

#define ConsoleFunctionGroupBegin ( groupName,
usage   )     static ConsoleConstructor gConsoleFunctionGroup##groupName##__GroupBegin(NULL,#groupName,usage);

#define ConsoleFunction ( name,
returnType,
minArgs,
maxArgs,
usage1   ) 

Value:

static returnType c##name(SimObject *, S32, const char **argv);                     \
      static ConsoleConstructor g##name##obj(NULL,#name,c##name,usage1,minArgs,maxArgs);  \
      static returnType c##name(SimObject *, S32 argc, const char **argv)

#define ConsoleToolFunction ( name,
returnType,
minArgs,
maxArgs,
usage1   ) 

Value:

static returnType c##name(SimObject *, S32, const char **argv);                        \
   static ConsoleConstructor g##name##obj(NULL,#name,c##name,usage1,minArgs,maxArgs, true);     \
   static returnType c##name(SimObject *, S32 argc, const char **argv)

#define ConsoleFunctionGroupEnd ( groupName   )     static ConsoleConstructor gConsoleFunctionGroup##groupName##__GroupEnd(NULL,#groupName,NULL);

#define ConsoleNamespace ( className,
usage   )     static ConsoleConstructor className##__Namespace(#className, usage);

#define ConsoleMethodGroupBegin ( className,
groupName,
usage   )     static ConsoleConstructor className##groupName##__GroupBegin(#className,#groupName,usage);

#define ConsoleMethod ( className,
name,
returnType,
minArgs,
maxArgs,
usage1   ) 

Value:

static inline returnType c##className##name(className *, S32, const char **argv);               \
      static returnType c##className##name##caster(SimObject *object, S32 argc, const char **argv) {  \
         AssertFatal( dynamic_cast<className*>( object ), "Object passed to " #name " is not a " #className "!" ); \
         conmethod_return_##returnType ) c##className##name(static_cast<className*>(object),argc,argv);              \
      };                                                                                              \
      static ConsoleConstructor className##name##obj(#className,#name,c##className##name##caster,usage1,minArgs,maxArgs); \
      static inline returnType c##className##name(className *object, S32 argc, const char **argv)

#define ConsoleStaticMethod ( className,
name,
returnType,
minArgs,
maxArgs,
usage1   ) 

Value:

static inline returnType c##className##name(S32, const char **);                                \
      static returnType c##className##name##caster(SimObject *object, S32 argc, const char **argv) {  \
         conmethod_return_##returnType ) c##className##name(argc,argv);                                \
      };                                                                                              \
      static ConsoleConstructor                                                                       \
         className##name##obj(#className,#name,c##className##name##caster,usage1,minArgs,maxArgs);    \
      static inline returnType c##className##name(S32 argc, const char **argv)

#define ConsoleMethodGroupEnd ( className,
groupName   )     static ConsoleConstructor className##groupName##__GroupEnd(#className,#groupName,NULL);


Typedef Documentation

typedef const char* StringTableEntry


Enumeration Type Documentation

Enumerator:
StringTagPrefixByte  Magic value prefixed to tagged strings.


Function Documentation

void expandEscape ( char *  dest,
const char *  src 
)

bool collapseEscape ( char *  buf  ) 

S32 HashPointer ( StringTableEntry  ptr  ) 


Variable Documentation

Indicates that warnings about undefined script variables should be displayed.

Note:
This is set and controlled by script.