ServerApp Class Reference

#include <ServerApp.h>

Inheritance diagram for ServerApp:

Inheritance graph
[legend]
Collaboration diagram for ServerApp:

Collaboration graph
[legend]

List of all members.

Public Member Functions

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

Static Public Member Functions

static void signalTerminate (int sig)
static void signalInterrupt (int sig)
static void signalRestart (int sig)
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


Constructor & Destructor Documentation

ServerApp::ServerApp (  ) 

ServerApp::~ServerApp (  )  [virtual]


Member Function Documentation

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

Load and initialize any BES modules.

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

Reimplemented from BESModuleApp.

References BESApp::appName(), BESDEBUG, TheBESKeys::ConfigFile, BESKeys::get_key(), BESModuleApp::initialize(), BESDefaultCommands::initialize(), BESDefaultModule::initialize(), SERVER_EXIT_FATAL_CAN_NOT_START, BESDebug::SetUp(), BESServerUtils::show_usage(), BESServerUtils::show_version(), signalInterrupt(), signalRestart(), signalTerminate(), BESApp::TheApplication(), and TheBESKeys::TheKeys().

Here is the call graph for this function:

int ServerApp::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.

References BESDEBUG, BESError::get_message(), PPTServer::initConnection(), BESMemoryManager::initialize_memory_pool(), and SocketListener::listen().

Here is the call graph for this function:

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

clean up after the application

Calls terminate on each of the loaded modules

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

Reimplemented from BESModuleApp.

References BESDEBUG, UnixSocket::close(), Socket::close(), PPTServer::closeConnection(), BESModuleApp::terminate(), BESDefaultCommands::terminate(), and BESDefaultModule::terminate().

Here is the call graph for this function:

void ServerApp::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 BESModuleApp.

References BESModuleApp::dump(), PPTServer::dump(), UnixSocket::dump(), TcpSocket::dump(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

Here is the call graph for this function:

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

References SERVER_EXIT_NORMAL_SHUTDOWN, BESApp::terminate(), and BESApp::TheApplication().

Referenced by initialize().

Here is the call graph for this function:

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

References SERVER_EXIT_NORMAL_SHUTDOWN, BESApp::terminate(), and BESApp::TheApplication().

Referenced by initialize().

Here is the call graph for this function:

void ServerApp::signalRestart ( int  sig  )  [static]

References SERVER_EXIT_RESTART, BESApp::terminate(), and BESApp::TheApplication().

Referenced by initialize().

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.

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

Referenced by main().

Here is the call graph for this function:

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

References BESApp::_appName.

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

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

Returns the BESApp application object for this application.

Returns:
The application object

References BESApp::_theApplication.

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


Member Data Documentation

string BESApp::_appName [protected, inherited]

bool BESApp::_debug [protected, inherited]

bool BESApp::_isInitialized [protected, inherited]

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

Referenced by BESApp::TheApplication().


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

Generated on Wed Sep 24 12:30:26 2008 for OPeNDAP Back End Server (BES) by  doxygen 1.5.6