Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes

CmdApp Class Reference

#include <CmdApp.h>

Inheritance diagram for CmdApp:
Inheritance graph
[legend]
Collaboration diagram for CmdApp:
Collaboration graph
[legend]

List of all members.

Public Member Functions

string appName (void) const
 Returns the name of the application.
CmdClient * client ()
 CmdApp ()
virtual void dump (ostream &strm) const
 dumps information about this object
virtual int initialize (int argC, char **argV)
 initialize the BES application
virtual int main (int argC, char **argV)
 main method of the BES application
virtual int run ()
 the applications functionality is implemented in the run method
virtual int terminate (int sig=0)
 clean up after the application
virtual ~CmdApp ()

Static Public Member Functions

static void signalBrokenPipe (int sig)
static void signalCannotConnect (int sig)
static void signalInterrupt (int sig)
static void signalTerminate (int sig)
static BESApp * TheApplication (void)
 Returns the BESApp application object for this application.

Protected Attributes

string _appName
bool _debug
bool _isInitialized

Static Protected Attributes

static BESApp * _theApplication = 0

Detailed Description

Definition at line 42 of file CmdApp.h.


Constructor & Destructor Documentation

CmdApp::CmdApp (  ) 

Definition at line 61 of file CmdApp.cc.

CmdApp::~CmdApp (  )  [virtual]

Definition at line 75 of file CmdApp.cc.


Member Function Documentation

string BESApp::appName ( void   )  const [inline, inherited]

Returns the name of the application.

The name of the application is typically argv[0] passed into the main function. But could be passed into the application or derived in a different way.

Returns:
name of the application

Definition at line 132 of file BESApp.h.

References BESApp::_appName.

Referenced by BESBaseApp::dump(), ServerApp::initialize(), signalBrokenPipe(), signalCannotConnect(), signalInterrupt(), and signalTerminate().

CmdClient* CmdApp::client (  )  [inline]

Definition at line 67 of file CmdApp.h.

Referenced by signalBrokenPipe(), and signalCannotConnect().

void CmdApp::dump ( ostream &  strm  )  const [virtual]

dumps information about this object

Displays the pointer value of this instance

Parameters:
strm C++ i/o stream to dump the information to

Reimplemented from BESBaseApp.

Definition at line 511 of file CmdApp.cc.

References CmdClient::dump(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

Here is the call graph for this function:

int CmdApp::initialize ( int  argC,
char **  argV 
) [virtual]

initialize the BES application

uses the BESGlobalIQ static method BESGlobalInit to initialize any global variables needed by this application

Returns:
0 if successful and not 0 otherwise
Parameters:
argC argc value passed to the main function
argV argv value passed to the main function
Exceptions:
BESError if any exceptions or errors are encountered
See also:
BESGlobalIQ

Reimplemented from BESBaseApp.

Definition at line 231 of file CmdApp.cc.

References BESDEBUG, and BESDebug::SetUp().

Here is the call graph for this function:

int BESBaseApp::main ( int  argC,
char **  argV 
) [virtual, inherited]

main method of the BES application

sets the appName to argv[0], then calls initialize, run, and terminate in that order. Exceptions should be caught in the individual methods initialize, run and terminate and handled there.

Returns:
0 if successful and not 0 otherwise
Parameters:
argC argc value passed to the main function
argV argv value passed to the main function

Implements BESApp.

Definition at line 75 of file BESBaseApp.cc.

References BESApp::_appName, BESBaseApp::initialize(), BESBaseApp::run(), and BESBaseApp::terminate().

Referenced by main().

Here is the call graph for this function:

int CmdApp::run ( void   )  [virtual]

the applications functionality is implemented in the run method

It is up to the derived class to implement this method.

Returns:
0 if successful and not 0 otherwise
Exceptions:
BESError if the derived class does not implement this method

Reimplemented from BESBaseApp.

Definition at line 407 of file CmdApp.cc.

References BESDEBUG, CmdClient::executeCommands(), BESError::get_message(), CmdClient::interact(), CmdClient::setOutput(), CmdClient::shutdownClient(), and CmdClient::startClient().

Here is the call graph for this function:

void CmdApp::signalBrokenPipe ( int  sig  )  [static]

Definition at line 160 of file CmdApp.cc.

References BESApp::appName(), CmdClient::brokenPipe(), client(), CmdClient::shutdownClient(), and BESApp::TheApplication().

Here is the call graph for this function:

void CmdApp::signalCannotConnect ( int  sig  )  [static]

Definition at line 110 of file CmdApp.cc.

References BESApp::appName(), client(), CmdClient::isConnected(), and BESApp::TheApplication().

Here is the call graph for this function:

void CmdApp::signalInterrupt ( int  sig  )  [static]

Definition at line 130 of file CmdApp.cc.

References BESApp::appName(), and BESApp::TheApplication().

Here is the call graph for this function:

void CmdApp::signalTerminate ( int  sig  )  [static]

Definition at line 145 of file CmdApp.cc.

References BESApp::appName(), and BESApp::TheApplication().

Here is the call graph for this function:

int BESBaseApp::terminate ( int  sig = 0  )  [virtual, inherited]

clean up after the application

Cleans up any global variables registered with BESGlobalIQ

Returns:
0 if successful and not 0 otherwise
Parameters:
sig if the application is terminating due to a signal, otherwise 0 is passed.
See also:
BESGlobalIQ

Implements BESApp.

Reimplemented in BESModuleApp, ServerApp, and StandAloneApp.

Definition at line 154 of file BESBaseApp.cc.

References BESApp::_isInitialized, and BESGlobalIQ::BESGlobalQuit().

Referenced by BESBaseApp::main().

Here is the call graph for this function:

static BESApp* BESApp::TheApplication ( void   )  [inline, static, inherited]

Returns the BESApp application object for this application.

Returns:
The application object

Definition at line 138 of file BESApp.h.

References BESApp::_theApplication.

Referenced by ServerApp::initialize(), signalBrokenPipe(), signalCannotConnect(), ServerApp::signalInterrupt(), signalInterrupt(), ServerApp::signalRestart(), ServerApp::signalTerminate(), and signalTerminate().


Member Data Documentation

string BESApp::_appName [protected, inherited]

Definition at line 60 of file BESApp.h.

Referenced by BESApp::appName(), and BESBaseApp::main().

bool BESApp::_debug [protected, inherited]

Definition at line 61 of file BESApp.h.

bool BESApp::_isInitialized [protected, inherited]

Definition at line 62 of file BESApp.h.

Referenced by BESBaseApp::dump(), BESBaseApp::initialize(), and BESBaseApp::terminate().

BESApp * BESApp::_theApplication = 0 [static, protected, inherited]

Definition at line 63 of file BESApp.h.

Referenced by BESApp::TheApplication().


The documentation for this class was generated from the following files: