BESXMLCommand Class Reference

#include <BESXMLCommand.h>

Inheritance diagram for BESXMLCommand:

Inheritance graph
[legend]
Collaboration diagram for BESXMLCommand:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void dump (ostream &strm) const
 dumps information about this object
virtual BESDataHandlerInterfaceget_dhi ()
 Return the current BESDataHandlerInterface.
virtual bool has_response ()=0
 Has a response handler been created given the request document?
virtual void parse_request (xmlNode *node)=0
 Parse the XML request document begining at the given node.
virtual void prep_request ()
 Prepare any information needed to execute the request of this command.
virtual ~BESXMLCommand ()

Static Public Member Functions

static void add_command (const string &cmd_str, p_xmlcmd_builder cmd)
 Add a command to the possible commands allowed by this BES.
static bool del_command (const string &cmd_str)
 Deletes the command called cmd_str from the list of possible commands.
static p_xmlcmd_builder find_command (const string &cmd_str)
 Find the BESXMLCommand creation function with the given name.

Protected Member Functions

 BESXMLCommand (const BESDataHandlerInterface &base_dhi)
 Creates a BESXMLCommand document given a base data handler interface object.
virtual void set_response ()
 The request has been parsed, use the command action name to set the response handler.

Protected Attributes

BESDataHandlerInterface _dhi
string _str_cmd

Detailed Description

Definition at line 51 of file BESXMLCommand.h.


Constructor & Destructor Documentation

BESXMLCommand::BESXMLCommand ( const BESDataHandlerInterface base_dhi  )  [protected]

Creates a BESXMLCommand document given a base data handler interface object.

Since there can be multiple commands within a single BES request document, there can be multiple data handler interface objects created. Use the one passed as the base interface handler object

Definition at line 47 of file BESXMLCommand.cc.

References _dhi, and BESDataHandlerInterface::make_copy().

Here is the call graph for this function:

virtual BESXMLCommand::~BESXMLCommand (  )  [inline, virtual]

Definition at line 62 of file BESXMLCommand.h.


Member Function Documentation

void BESXMLCommand::add_command ( const string &  cmd_str,
p_xmlcmd_builder  cmd 
) [static]

Add a command to the possible commands allowed by this BES.

This adds a function to parse a specific BES command within the BES request document using the given name. If a command element is found with the name cmd_str, then the XMLCommand object is created using the passed cmd object.

Parameters:
cmd_str The name of the command
cmd The function to call to create the BESXMLCommand object

Definition at line 80 of file BESXMLCommand.cc.

Referenced by BESXMLDefaultCommands::initialize(), and BESXMLDapCommandModule::initialize().

bool BESXMLCommand::del_command ( const string &  cmd_str  )  [static]

Deletes the command called cmd_str from the list of possible commands.

Parameters:
cmd_str The name of the command to remove from the list

Definition at line 91 of file BESXMLCommand.cc.

Referenced by BESXMLDefaultCommands::terminate(), and BESXMLDapCommandModule::terminate().

void BESXMLCommand::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

Implements BESObj.

Reimplemented in BESXMLCatalogCommand, BESXMLDefineCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLGetCommand, BESXMLGetDataDDXCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.

Definition at line 120 of file BESXMLCommand.cc.

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

Referenced by BESXMLShowErrorCommand::dump(), BESXMLShowCommand::dump(), BESXMLSetContextCommand::dump(), BESXMLSetContainerCommand::dump(), BESXMLGetDataDDXCommand::dump(), BESXMLGetCommand::dump(), BESXMLDeleteDefinitionsCommand::dump(), BESXMLDeleteDefinitionCommand::dump(), BESXMLDeleteContainersCommand::dump(), BESXMLDeleteContainerCommand::dump(), BESXMLDefineCommand::dump(), and BESXMLCatalogCommand::dump().

Here is the call graph for this function:

p_xmlcmd_builder BESXMLCommand::find_command ( const string &  cmd_str  )  [static]

Find the BESXMLCommand creation function with the given name.

Parameters:
cmd_str The name of the command creation function to find

Definition at line 108 of file BESXMLCommand.cc.

Referenced by BESXMLInterface::build_data_request_plan(), and BESXMLGetCommand::parse_request().

virtual BESDataHandlerInterface& BESXMLCommand::get_dhi (  )  [inline, virtual]

Return the current BESDataHandlerInterface.

Since there can be multiple commands within a single request document, different interface objects can be created. This returns the current interface object

Returns:
The current BESDataHandlerInterface object

Reimplemented in BESXMLGetCommand.

Definition at line 87 of file BESXMLCommand.h.

References _dhi.

Referenced by BESXMLInterface::build_data_request_plan(), and BESXMLGetCommand::get_dhi().

virtual bool BESXMLCommand::has_response (  )  [pure virtual]

Has a response handler been created given the request document?

Returns:
true if a response handler has been set, false otherwise

Implemented in BESXMLCatalogCommand, BESXMLDefineCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLGetCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.

Referenced by BESXMLInterface::build_data_request_plan().

virtual void BESXMLCommand::parse_request ( xmlNode *  node  )  [pure virtual]

Parse the XML request document begining at the given node.

Parameters:
node Begin parsing at this XML node

Implemented in BESXMLCatalogCommand, BESXMLDefineCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLGetCommand, BESXMLGetDataDDXCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.

Referenced by BESXMLInterface::build_data_request_plan(), and BESXMLGetCommand::parse_request().

virtual void BESXMLCommand::prep_request (  )  [inline, virtual]

Prepare any information needed to execute the request of this command.

Reimplemented in BESXMLDefineCommand, BESXMLGetCommand, and BESXMLGetDataDDXCommand.

Definition at line 78 of file BESXMLCommand.h.

Referenced by BESXMLGetCommand::prep_request().

void BESXMLCommand::set_response (  )  [protected, virtual]

The request has been parsed, use the command action name to set the response handler.

Definition at line 56 of file BESXMLCommand.cc.

References _dhi, _str_cmd, BESDataHandlerInterface::action, BESDataHandlerInterface::data, DATA_REQUEST, BESResponseHandlerList::find_handler(), BESDataHandlerInterface::response_handler, and BESResponseHandlerList::TheList().

Referenced by BESXMLShowErrorCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLGetDataDDXCommand::parse_request(), BESXMLGetCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLDeleteContainerCommand::parse_request(), BESXMLDefineCommand::parse_request(), and BESXMLCatalogCommand::parse_request().

Here is the call graph for this function:


Member Data Documentation

BESDataHandlerInterface BESXMLCommand::_dhi [protected]

Definition at line 57 of file BESXMLCommand.h.

Referenced by BESXMLCommand(), BESXMLGetCommand::get_dhi(), get_dhi(), BESXMLGetCommand::parse_basic_get(), BESXMLShowErrorCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLGetCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLDeleteContainerCommand::parse_request(), BESXMLDefineCommand::parse_request(), BESXMLCatalogCommand::parse_request(), BESXMLGetDataDDXCommand::prep_request(), BESXMLGetCommand::prep_request(), BESXMLDefineCommand::prep_request(), and set_response().

string BESXMLCommand::_str_cmd [protected]

Definition at line 59 of file BESXMLCommand.h.

Referenced by BESXMLGetCommand::parse_basic_get(), BESXMLShowErrorCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLGetDataDDXCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLDeleteContainerCommand::parse_request(), BESXMLDefineCommand::parse_request(), and set_response().


The documentation for this class was generated from the following files:
Generated on Thu Feb 11 09:17:28 2010 for OPeNDAP Hyrax Back End Server (BES) by  doxygen 1.4.7