FRIBParallelanalysis
1.0
FrameworkforMPIParalleldataanalysisatFRIB
|
#include <CTCLStdioCommander.h>
Public Member Functions | |
CTCLStdioCommander (CTCLInterpreter *pInterp) | |
virtual | ~CTCLStdioCommander () |
![]() | |
CTCLChannelCommander (CTCLInterpreter *interp, Tcl_Channel channel) | |
virtual | ~CTCLChannelCommander () |
virtual void | start () |
virtual void | stop () |
Tcl_Channel | getChannel () const |
virtual void | onInput () |
virtual void | onInputException () |
virtual void | onEndFile () |
virtual void | onCommand () |
virtual void | prompt1 () |
virtual void | prompt2 () |
bool | stopped () const |
Additional Inherited Members | |
![]() | |
static void | inputRelay (ClientData pData, int mask) |
![]() | |
std::string | prompt1String () |
std::string | prompt2String () |
std::string | getPromptString (const char *scriptVariable, const char *defaultValue) |
![]() | |
CTCLInterpreter * | m_pInterp |
Tcl_Channel | m_channel |
std::string | m_command |
bool | m_active |
STDIO channel commander is a channel commander that prompts on stdout, and accepts commands on stdin. Registering this in the event loop, and then entering the event loop yields a powerful result, tcl with an event loop running but still accepting commands on stdin (event loop without the vwait command).
See also CTCLLiveEventLoop which is a class that can set this all up and contains the event loop code itself.
CTCLStdioCommander::CTCLStdioCommander | ( | CTCLInterpreter * | pInterp | ) |
Construction requires
These can be determined using Tcl_GetStdChannel so we don't need the caller's help to get all this going:
pInterp | - Pointer to the interpreter object to which commands will be submitted. |
|
virtual |
Destruction is a placeholder to ensure base class destruction is done.. that's where the action is.