BESCmdInterface Class Reference

Entry point into BES using string command requests. More...

#include <BESCmdInterface.h>

Inheritance diagram for BESCmdInterface:

Inheritance graph
[legend]
Collaboration diagram for BESCmdInterface:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BESCmdInterface ()
 Instantiate a BESCmdInterface object.
 BESCmdInterface (const string &cmd)
virtual ~BESCmdInterface ()
virtual int execute_request ()
 Override execute_request in order to register memory pool.
virtual void dump (ostream &strm) const
 dumps information about this object

Static Public Member Functions

static void add_init_callback (p_bes_init init)
static void add_end_callback (p_bes_end end)

Protected Member Functions

virtual void initialize ()
 Initialize the BES.
virtual void validate_data_request ()
 Validate the incoming request information.
virtual void build_data_request_plan ()
 Build the data request plan using the BESCmdParser.
virtual void execute_data_request_plan ()
 Execute the data request plan.
virtual void invoke_aggregation ()
 Invoke the aggregation server, if there is one.
virtual void transmit_data ()
 Transmit the response object.
virtual void log_status ()
 Log the status of the request to the BESLog file.
virtual void clean ()
 Clean up after the request is completed.
virtual int exception_manager (BESException &e)
 Manage any exceptions thrown during the whole process.
virtual void report_request ()
 Report the request and status of the request to BESReporterList::TheList().
virtual void end_request ()
 End the BES request.

Protected Attributes

BESDataHandlerInterface _dhi
BESTransmitter_transmitter

Detailed Description

Entry point into BES using string command requests.

The format of the request looks somethink like:

    set container in catalog values c,nc/mplot.nc;
    define d as c;
    get das for d;
    

In this example a DAS object response is being requested. The DAS object is to be built from the definition 'd', where d is defined using the data container c. The data container c is created using the real file nc/mplot.nc

BESCmdInterface uses BESParser to parse through the request string, building up a plan to be used during the execute method. Most implementations simply log information to the BESLog file before calling the parent class method.

See also:
BESInterface

BESParser

Definition at line 68 of file BESCmdInterface.h.


Constructor & Destructor Documentation

BESCmdInterface::BESCmdInterface (  ) 

Instantiate a BESCmdInterface object.

Parameters:
dri BESDSDataRequestInterface built using information from the apache module including the request and constraint passed as part of the URL.
See also:
_BESDSDataRequestInterface

Definition at line 60 of file BESCmdInterface.cc.

BESCmdInterface::BESCmdInterface ( const string &  cmd  ) 

Definition at line 65 of file BESCmdInterface.cc.

References BESInterface::_dhi, _BESDataHandlerInterface::data, and DATA_REQUEST.

BESCmdInterface::~BESCmdInterface (  )  [virtual]

Definition at line 70 of file BESCmdInterface.cc.

References clean().

Here is the call graph for this function:


Member Function Documentation

void BESCmdInterface::initialize (  )  [protected, virtual]

Initialize the BES.

Determines what transmitter this BES will be using to transmit response objects and then calls the parent initialization method in order to initialize all global variables.

See also:
BESTransmitter

_BESDataHandlerInterface

Reimplemented from BESInterface.

Reimplemented in BESApacheInterface.

Definition at line 99 of file BESCmdInterface.cc.

References BESInterface::_dhi, BESInterface::_transmitter, BASIC_TRANSMITTER, BESDEBUG, _BESDataHandlerInterface::data, BESReturnManager::find_transmitter(), HTTP_TRANSMITTER, BESInterface::initialize(), SERVER_PID, BESReturnManager::TheManager(), and _BESDataHandlerInterface::transmit_protocol.

Referenced by BESApacheInterface::initialize().

Here is the call graph for this function:

void BESCmdInterface::validate_data_request (  )  [protected, virtual]

Validate the incoming request information.

Reimplemented from BESInterface.

Reimplemented in BESApacheInterface.

Definition at line 147 of file BESCmdInterface.cc.

References BESInterface::validate_data_request().

Here is the call graph for this function:

void BESCmdInterface::build_data_request_plan (  )  [protected, virtual]

Build the data request plan using the BESCmdParser.

See also:
BESCmdParser

Reimplemented from BESInterface.

Definition at line 157 of file BESCmdInterface.cc.

References BESInterface::_dhi, BESInterface::_transmitter, BESDEBUG, _BESDataHandlerInterface::data, DATA_REQUEST, BESDebug::Debug(), _BESDataHandlerInterface::dump(), BESReturnManager::find_transmitter(), BESDebug::Get_strm(), BESCmdParser::parse(), RETURN_CMD, SERVER_PID, BESLog::TheLog(), and BESReturnManager::TheManager().

Here is the call graph for this function:

void BESCmdInterface::execute_data_request_plan (  )  [protected, virtual]

Execute the data request plan.

Simply calls the parent method. Prior to calling the parent method logs a message to the dods log file.

See also:
BESLog

Reimplemented from BESInterface.

Definition at line 198 of file BESCmdInterface.cc.

References BESInterface::_dhi, _BESDataHandlerInterface::data, DATA_REQUEST, BESInterface::execute_data_request_plan(), SERVER_PID, and BESLog::TheLog().

Here is the call graph for this function:

void BESCmdInterface::invoke_aggregation (  )  [protected, virtual]

Invoke the aggregation server, if there is one.

Simply calls the parent method. Prior to calling the parent method logs a message to the dods log file.

See also:
BESLog

Reimplemented from BESInterface.

Definition at line 214 of file BESCmdInterface.cc.

References BESInterface::_dhi, AGG_CMD, AGG_HANDLER, _BESDataHandlerInterface::data, DATA_REQUEST, BESAggFactory::find_handler(), BESInterface::invoke_aggregation(), SERVER_PID, BESAggFactory::TheFactory(), and BESLog::TheLog().

Here is the call graph for this function:

void BESCmdInterface::transmit_data (  )  [protected, virtual]

Transmit the response object.

Simply calls the parent method. Prior to calling the parent method logs a message to the dods log file.

See also:
BESLog

Reimplemented from BESInterface.

Definition at line 259 of file BESCmdInterface.cc.

References BESInterface::_dhi, _BESDataHandlerInterface::data, DATA_REQUEST, SERVER_PID, BESLog::TheLog(), and BESInterface::transmit_data().

Here is the call graph for this function:

void BESCmdInterface::log_status (  )  [protected, virtual]

Log the status of the request to the BESLog file.

See also:
BESLog

Reimplemented from BESInterface.

Definition at line 275 of file BESCmdInterface.cc.

References BESInterface::_dhi, _BESDataHandlerInterface::data, DATA_REQUEST, _BESDataHandlerInterface::error_info, SERVER_PID, and BESLog::TheLog().

Here is the call graph for this function:

void BESCmdInterface::clean (  )  [protected, virtual]

Clean up after the request is completed.

Calls the parent method clean and then logs to the BESLog file saying that we are done and exiting the process. The exit actually takes place in the module code.

See also:
BESLog

Reimplemented from BESInterface.

Definition at line 294 of file BESCmdInterface.cc.

References BESInterface::_dhi, BESInterface::clean(), _BESDataHandlerInterface::data, DATA_REQUEST, SERVER_PID, and BESLog::TheLog().

Referenced by BESApacheInterface::~BESApacheInterface(), and ~BESCmdInterface().

Here is the call graph for this function:

int BESCmdInterface::execute_request (  )  [virtual]

Override execute_request in order to register memory pool.

Once the memory pool is initialized hand over control to parent class to execute the request. Once completed, unregister the memory pool.

This needs to be done here instead of the initialization method because???

Reimplemented from BESInterface.

Reimplemented in BESApacheInterface.

Definition at line 84 of file BESCmdInterface.cc.

References BESInterface::execute_request().

Referenced by BESApacheInterface::execute_request().

Here is the call graph for this function:

void BESCmdInterface::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 BESInterface.

Definition at line 309 of file BESCmdInterface.cc.

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

Here is the call graph for this function:

int BESInterface::exception_manager ( BESException e  )  [protected, virtual, inherited]

Manage any exceptions thrown during the whole process.

Specific responses are generated given a specific Exception caught. If additional exceptions are thrown within derived systems then implement those in the derived exception_manager methods. This is a catch-all manager and should be called once derived methods have caught their exceptions.

Parameters:
e BESException to be managed
Returns:
status after exception is handled
See also:
BESException

Reimplemented in BESApacheInterface.

Definition at line 358 of file BESInterface.cc.

References BESInterface::_dhi, BESExceptionManager::handle_exception(), and BESExceptionManager::TheEHM().

Referenced by BESApacheInterface::exception_manager(), and BESInterface::execute_request().

Here is the call graph for this function:

void BESInterface::report_request (  )  [protected, virtual, inherited]

Report the request and status of the request to BESReporterList::TheList().

If interested in reporting the request and status of the request then one must register a BESReporter with BESReporterList::TheList().

If no BESReporter objects are registered then nothing happens.

See also:
BESReporterList

BESReporter

Definition at line 308 of file BESInterface.cc.

References BESInterface::_dhi, BESDEBUG, DATA_REQUEST, BESReporterList::report(), and BESReporterList::TheList().

Referenced by BESInterface::execute_request().

Here is the call graph for this function:

void BESInterface::end_request (  )  [protected, virtual, inherited]

End the BES request.

This method allows developers to add callbacks at the end of a request, to do any cleanup or do any extra work at the end of a request

Definition at line 326 of file BESInterface.cc.

References BESInterface::_dhi, BESDEBUG, _BESDataHandlerInterface::data, and DATA_REQUEST.

Referenced by BESInterface::execute_request().

void BESInterface::add_init_callback ( p_bes_init  init  )  [static, inherited]

Definition at line 157 of file BESInterface.cc.

void BESInterface::add_end_callback ( p_bes_end  end  )  [static, inherited]

Definition at line 316 of file BESInterface.cc.


Member Data Documentation

BESDataHandlerInterface BESInterface::_dhi [protected, inherited]

Definition at line 134 of file BESInterface.h.

Referenced by BESCgiInterface::BESCgiInterface(), BESCmdInterface(), build_data_request_plan(), BESCgiInterface::build_data_request_plan(), BESInterface::clean(), clean(), BESInterface::dump(), BESInterface::end_request(), BESInterface::exception_manager(), BESApacheInterface::exception_manager(), BESInterface::execute_data_request_plan(), execute_data_request_plan(), BESInterface::execute_request(), BESInterface::initialize(), initialize(), BESApacheInterface::initialize(), BESInterface::invoke_aggregation(), invoke_aggregation(), log_status(), BESInterface::report_request(), BESInterface::transmit_data(), and transmit_data().

BESTransmitter* BESInterface::_transmitter [protected, inherited]

Definition at line 135 of file BESInterface.h.

Referenced by BESCgiInterface::BESCgiInterface(), build_data_request_plan(), BESInterface::dump(), initialize(), BESInterface::transmit_data(), and BESCgiInterface::~BESCgiInterface().


The documentation for this class was generated from the following files:
Generated on Wed Aug 29 03:23:29 2007 for OPeNDAP Back End Server (BES) by  doxygen 1.5.2