BESXMLInterface Class Reference

Entry point into BES using xml document requests. More...

#include <BESXMLInterface.h>

Inheritance diagram for BESXMLInterface:

Inheritance graph
[legend]
Collaboration diagram for BESXMLInterface:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BESXMLInterface (const string &cmd, ostream *strm)
virtual void dump (ostream &strm) const
 dumps information about this object
virtual int execute_request (const string &from)
 Override execute_request in order to register memory pool.
virtual int finish_with_error (int status)
virtual ~BESXMLInterface ()

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

BESDataHandlerInterface_dhi
BESTransmitter_transmitter

Detailed Description

Entry point into BES using xml document requests.

See also:
BESInterface

Definition at line 52 of file BESXMLInterface.h.


Constructor & Destructor Documentation

BESXMLInterface::BESXMLInterface ( const string &  cmd,
ostream *  strm 
)

Definition at line 49 of file BESXMLInterface.cc.

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

BESXMLInterface::~BESXMLInterface (  )  [virtual]

Definition at line 57 of file BESXMLInterface.cc.

References clean().

Here is the call graph for this function:


Member Function Documentation

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

Definition at line 463 of file BESInterface.cc.

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

Definition at line 281 of file BESInterface.cc.

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

Build the data request plan using the BESCmdParser.

Reimplemented from BESBasicInterface.

Definition at line 87 of file BESXMLInterface.cc.

References BESInterface::_dhi, BESDEBUG, BESBasicInterface::build_data_request_plan(), BESDataHandlerInterface::data, BESXMLCommand::find_command(), BESReturnManager::find_transmitter(), BESXMLCommand::get_dhi(), BESXMLUtils::GetNodeInfo(), BESXMLCommand::has_response(), BESXMLCommand::parse_request(), REQUEST_FROM, REQUEST_ID, RETURN_CMD, SERVER_PID, BESLog::TheLog(), BESReturnManager::TheManager(), and BESXMLUtils::XMLErrorFunc().

Here is the call graph for this function:

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

Clean up after the request is completed.

Reimplemented from BESBasicInterface.

Definition at line 341 of file BESXMLInterface.cc.

References BESInterface::_dhi, and BESBasicInterface::clean().

Referenced by ~BESXMLInterface().

Here is the call graph for this function:

void BESXMLInterface::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 BESBasicInterface.

Definition at line 362 of file BESXMLInterface.cc.

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

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 474 of file BESInterface.cc.

References BESInterface::_dhi, BESDEBUG, BESDataHandlerInterface::container, BESDataHandlerInterface::data, DATA_REQUEST, BESDataHandlerInterface::first_container(), BESDataHandlerInterface::next_container(), and BESContainer::release().

Referenced by BESInterface::finish().

Here is the call graph for this function:

int BESInterface::exception_manager ( BESError 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 BESError to be managed
Returns:
status after exception is handled
See also:
BESError

Definition at line 518 of file BESInterface.cc.

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

Referenced by BESInterface::execute_request(), BESInterface::finish(), and BESInterface::finish_with_error().

Here is the call graph for this function:

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

Execute the data request plan.

Reimplemented from BESBasicInterface.

Definition at line 251 of file BESXMLInterface.cc.

References BESInterface::_dhi, and BESBasicInterface::execute_data_request_plan().

Here is the call graph for this function:

int BESXMLInterface::execute_request ( const string &  from  )  [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 BESBasicInterface.

Definition at line 63 of file BESXMLInterface.cc.

References BESBasicInterface::execute_request().

Here is the call graph for this function:

int BESInterface::finish ( int  status  )  [protected, virtual, inherited]

Definition at line 176 of file BESInterface.cc.

References BESInterface::_dhi, BESInterface::end_request(), BESDataHandlerInterface::error_info, BESInterface::exception_manager(), BESError::get_message(), BESInterface::log_status(), BESInfo::print(), BESInterface::report_request(), BESLog::TheLog(), and BESInterface::transmit_data().

Referenced by BESInterface::execute_request(), and BESInterface::finish_with_error().

Here is the call graph for this function:

int BESInterface::finish_with_error ( int  status  )  [virtual, inherited]

Definition at line 267 of file BESInterface.cc.

References BESInterface::_dhi, BESDataHandlerInterface::error_info, BESInterface::exception_manager(), and BESInterface::finish().

Here is the call graph for this function:

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

Initialize the BES.

Reimplemented from BESBasicInterface.

Definition at line 71 of file BESXMLInterface.cc.

References BESBasicInterface::initialize().

Here is the call graph for this function:

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

Invoke the aggregation server, if there is one.

Reimplemented from BESBasicInterface.

Definition at line 266 of file BESXMLInterface.cc.

References BESBasicInterface::invoke_aggregation().

Here is the call graph for this function:

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

Log the status of the request to the BESLog file.

See also:
BESLog

Reimplemented from BESBasicInterface.

Definition at line 300 of file BESXMLInterface.cc.

References BESInterface::_dhi, and BESBasicInterface::log_status().

Here is the call graph for this function:

void BESXMLInterface::report_request (  )  [protected, virtual]

Report the request and status of the request.

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.

Since there are multiple commands in an XML request document we iterate through the commands and execute report_request for each of the commands, giving the reporter a chance to report on each of the commands.

See also:
BESReporterList

BESReporter

Reimplemented from BESInterface.

Definition at line 327 of file BESXMLInterface.cc.

References BESInterface::_dhi, and BESInterface::report_request().

Here is the call graph for this function:

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

Transmit the response object.

Reimplemented from BESBasicInterface.

Definition at line 274 of file BESXMLInterface.cc.

References BESInterface::_dhi, BESInterface::_transmitter, BESDEBUG, BESDataHandlerInterface::data, BESReturnManager::find_transmitter(), RETURN_CMD, BESReturnManager::TheManager(), and BESBasicInterface::transmit_data().

Here is the call graph for this function:

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

Validate the incoming request information.

Reimplemented from BESBasicInterface.

Definition at line 79 of file BESXMLInterface.cc.

References BESBasicInterface::validate_data_request().

Here is the call graph for this function:


Member Data Documentation

BESDataHandlerInterface* BESInterface::_dhi [protected, inherited]

Definition at line 136 of file BESInterface.h.

Referenced by BESXMLInterface(), build_data_request_plan(), BESBasicInterface::build_data_request_plan(), clean(), BESInterface::clean(), BESBasicInterface::clean(), BESInterface::dump(), BESInterface::end_request(), BESInterface::exception_manager(), execute_data_request_plan(), BESInterface::execute_data_request_plan(), BESBasicInterface::execute_data_request_plan(), BESInterface::execute_request(), BESInterface::finish(), BESInterface::finish_with_error(), BESInterface::initialize(), BESInterface::invoke_aggregation(), BESBasicInterface::invoke_aggregation(), log_status(), BESBasicInterface::log_status(), report_request(), BESInterface::report_request(), transmit_data(), BESInterface::transmit_data(), and BESBasicInterface::transmit_data().

BESTransmitter* BESInterface::_transmitter [protected, inherited]

Definition at line 137 of file BESInterface.h.

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


The documentation for this class was generated from the following files:
Generated on Wed May 12 09:56:05 2010 for OPeNDAP Hyrax Back End Server (BES) by  doxygen 1.4.7