OPeNDAP Hyrax Back End Server (BES)
Updated for version 3.8.3
|
#include <BESXMLCommand.h>
Public Member Functions | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
virtual BESDataHandlerInterface & | get_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 |
Definition at line 51 of file BESXMLCommand.h.
|
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 48 of file BESXMLCommand.cc.
References _dhi, and BESDataHandlerInterface::make_copy().
|
inlinevirtual |
Definition at line 62 of file BESXMLCommand.h.
|
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.
cmd_str | The name of the command |
cmd | The function to call to create the BESXMLCommand object |
Definition at line 85 of file BESXMLCommand.cc.
Referenced by BESXMLDefaultCommands::initialize(), and BESXMLDapCommandModule::initialize().
|
static |
Deletes the command called cmd_str from the list of possible commands.
cmd_str | The name of the command to remove from the list |
Definition at line 96 of file BESXMLCommand.cc.
Referenced by BESXMLDefaultCommands::terminate(), and BESXMLDapCommandModule::terminate().
|
virtual |
dumps information about this object
Displays the pointer value of this instance
strm | C++ i/o stream to dump the information to |
Implements BESObj.
Reimplemented in BESXMLDefineCommand, BESXMLGetCommand, BESXMLGetDataDDXCommand, BESXMLCatalogCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.
Definition at line 125 of file BESXMLCommand.cc.
References BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().
Referenced by BESXMLInterface::dump().
|
static |
Find the BESXMLCommand creation function with the given name.
cmd_str | The name of the command creation function to find |
Definition at line 113 of file BESXMLCommand.cc.
Referenced by BESXMLInterface::build_data_request_plan(), and BESXMLGetCommand::parse_request().
|
inlinevirtual |
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
Reimplemented in BESXMLGetCommand.
Definition at line 87 of file BESXMLCommand.h.
References _dhi.
Referenced by BESXMLInterface::build_data_request_plan(), BESXMLInterface::clean(), and BESXMLGetCommand::get_dhi().
|
pure virtual |
Has a response handler been created given the request document?
Implemented in BESXMLDefineCommand, BESXMLGetCommand, BESXMLCatalogCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.
Referenced by BESXMLInterface::build_data_request_plan().
|
pure virtual |
Parse the XML request document begining at the given node.
node | Begin parsing at this XML node |
Implemented in BESXMLDefineCommand, BESXMLGetCommand, BESXMLGetDataDDXCommand, BESXMLCatalogCommand, BESXMLDeleteContainerCommand, BESXMLDeleteContainersCommand, BESXMLDeleteDefinitionCommand, BESXMLDeleteDefinitionsCommand, BESXMLSetContainerCommand, BESXMLSetContextCommand, BESXMLShowCommand, and BESXMLShowErrorCommand.
Referenced by BESXMLInterface::build_data_request_plan(), and BESXMLGetCommand::parse_request().
|
inlinevirtual |
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().
|
protectedvirtual |
The request has been parsed, use the command action name to set the response handler.
Definition at line 57 of file BESXMLCommand.cc.
References _dhi, _str_cmd, BESDataHandlerInterface::action, BESDataHandlerInterface::data, DATA_REQUEST, BESResponseHandlerList::find_handler(), REQUEST_FROM, BESDataHandlerInterface::response_handler, SERVER_PID, BESResponseHandlerList::TheList(), and BESLog::TheLog().
Referenced by BESXMLCatalogCommand::parse_request(), BESXMLShowErrorCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLDeleteContainerCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLGetDataDDXCommand::parse_request(), BESXMLGetCommand::parse_request(), and BESXMLDefineCommand::parse_request().
|
protected |
Definition at line 57 of file BESXMLCommand.h.
Referenced by BESXMLCommand(), BESXMLGetCommand::get_dhi(), get_dhi(), BESXMLGetCommand::parse_basic_get(), BESXMLDeleteContainerCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLShowErrorCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLCatalogCommand::parse_request(), BESXMLGetCommand::parse_request(), BESXMLDefineCommand::parse_request(), BESXMLGetDataDDXCommand::prep_request(), BESXMLGetCommand::prep_request(), BESXMLDefineCommand::prep_request(), and set_response().
|
protected |
Definition at line 59 of file BESXMLCommand.h.
Referenced by BESXMLGetCommand::parse_basic_get(), BESXMLShowErrorCommand::parse_request(), BESXMLCatalogCommand::parse_request(), BESXMLDeleteDefinitionCommand::parse_request(), BESXMLDeleteDefinitionsCommand::parse_request(), BESXMLSetContainerCommand::parse_request(), BESXMLSetContextCommand::parse_request(), BESXMLShowCommand::parse_request(), BESXMLDeleteContainersCommand::parse_request(), BESXMLDeleteContainerCommand::parse_request(), BESXMLGetDataDDXCommand::parse_request(), BESXMLGetCommand::parse_request(), BESXMLDefineCommand::parse_request(), and set_response().