OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
CmdApp Class Reference

#include <CmdApp.h>

Inheritance diagram for CmdApp:
Collaboration diagram for CmdApp:

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

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:
strmC++ 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:
argCargc value passed to the main function
argVargv value passed to the main function
Exceptions:
BESErrorif any exceptions or errors are encountered
See also:
BESGlobalIQ

Reimplemented from BESBaseApp.

Definition at line 231 of file CmdApp.cc.

References BES_CMDLN_DEFAULT_TIMEOUT, 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:
argCargc value passed to the main function
argVargv 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:
BESErrorif 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:
sigif 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: