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

BESBaseApp Class Reference

Base application object for all BES applications. More...

#include <BESBaseApp.h>

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

List of all members.

Public Member Functions

string appName (void) const
 Returns the name of the application.
 BESBaseApp (void)
 Default constructor.
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 (void)
 the applications functionality is implemented in the run method
virtual int terminate (int sig=0)
 clean up after the application
virtual ~BESBaseApp (void)
 Default destructor.

Static Public Member Functions

static BESAppTheApplication (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

Base application object for all BES applications.

Implements the initialization method to initialize all global objects registered with the Global Initialization routines of BES.

Implements the terminate method to clean up any global objects registered with the Global Initialization routines of BES.

It is up to the derived classes to implement the run method.

See also:
BESApp
BESGlobalIQ

Definition at line 54 of file BESBaseApp.h.


Constructor & Destructor Documentation

BESBaseApp::BESBaseApp ( void   ) 

Default constructor.

Initialized the static _the Application to point to this application object

Definition at line 49 of file BESBaseApp.cc.

BESBaseApp::~BESBaseApp ( void   )  [virtual]

Default destructor.

sets the static _theApplicaiton to null. Does not call terminate. It is up to the main method to call the terminate method.

Definition at line 59 of file BESBaseApp.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 dump(), ServerApp::initialize(), CmdApp::signalBrokenPipe(), CmdApp::signalCannotConnect(), CmdApp::signalInterrupt(), and CmdApp::signalTerminate().

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

dumps information about this object

Displays the pointer value of this instance along with the name of the application, whether the application is initialized or not

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

Implements BESApp.

Reimplemented in CmdApp, BESModuleApp, ServerApp, and StandAloneApp.

Definition at line 169 of file BESBaseApp.cc.

References BESApp::_isInitialized, BESApp::appName(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

Here is the call graph for this function:

int BESBaseApp::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

Implements BESApp.

Reimplemented in CmdApp, BESModuleApp, ServerApp, and StandAloneApp.

Definition at line 99 of file BESBaseApp.cc.

References BESApp::_isInitialized, BESGlobalIQ::BESGlobalInit(), and BESError::get_message().

Referenced by main().

Here is the call graph for this function:

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

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, initialize(), run(), and terminate().

Referenced by main().

Here is the call graph for this function:

int BESBaseApp::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

Implements BESApp.

Reimplemented in CmdApp, ServerApp, and StandAloneApp.

Definition at line 137 of file BESBaseApp.cc.

Referenced by main().

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

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 main().

Here is the call graph for this function:

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

Member Data Documentation

string BESApp::_appName [protected, inherited]

Definition at line 60 of file BESApp.h.

Referenced by BESApp::appName(), and 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 dump(), initialize(), and 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: