OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
BESXMLDefineCommand Class Reference

#include <BESXMLDefineCommand.h>

Inheritance diagram for BESXMLDefineCommand:
Inheritance graph
Collaboration diagram for BESXMLDefineCommand:
Collaboration graph

Public Member Functions

 BESXMLDefineCommand (const BESDataHandlerInterface &base_dhi)
 
virtual void dump (ostream &strm) const
 dumps information about this object More...
 
virtual BESDataHandlerInterfaceget_dhi ()
 Return the current BESDataHandlerInterface. More...
 
virtual bool has_response ()
 Has a response handler been created given the request document? More...
 
virtual void parse_request (xmlNode *node)
 parse a show command. More...
 
virtual void prep_request ()
 prepare the define command by making sure the containers exist More...
 
virtual ~BESXMLDefineCommand ()
 

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. More...
 
static BESXMLCommandCommandBuilder (const BESDataHandlerInterface &base_dhi)
 
static bool del_command (const string &cmd_str)
 Deletes the command called cmd_str from the list of possible commands. More...
 
static p_xmlcmd_builder find_command (const string &cmd_str)
 Find the BESXMLCommand creation function with the given name. More...
 

Protected Member Functions

virtual void set_response ()
 The request has been parsed, use the command action name to set the response handler. More...
 

Protected Attributes

BESDataHandlerInterface _dhi
 
string _str_cmd
 

Detailed Description

Definition at line 43 of file BESXMLDefineCommand.h.

Constructor & Destructor Documentation

BESXMLDefineCommand::BESXMLDefineCommand ( const BESDataHandlerInterface base_dhi)

Definition at line 43 of file BESXMLDefineCommand.cc.

Referenced by CommandBuilder().

virtual BESXMLDefineCommand::~BESXMLDefineCommand ( )
inlinevirtual

Definition at line 61 of file BESXMLDefineCommand.h.

Member Function Documentation

void BESXMLCommand::add_command ( const string &  cmd_str,
p_xmlcmd_builder  cmd 
)
staticinherited

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_strThe name of the command
cmdThe function to call to create the BESXMLCommand object

Definition at line 85 of file BESXMLCommand.cc.

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

BESXMLCommand * BESXMLDefineCommand::CommandBuilder ( const BESDataHandlerInterface base_dhi)
static

Definition at line 368 of file BESXMLDefineCommand.cc.

References BESXMLDefineCommand().

Referenced by BESXMLDefaultCommands::initialize().

Here is the call graph for this function:

bool BESXMLCommand::del_command ( const string &  cmd_str)
staticinherited

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

Parameters
cmd_strThe name of the command to remove from the list

Definition at line 96 of file BESXMLCommand.cc.

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

void BESXMLDefineCommand::dump ( ostream &  strm) const
virtual

dumps information about this object

Displays the pointer value of this instance

Parameters
strmC++ i/o stream to dump the information to

Reimplemented from BESXMLCommand.

Definition at line 358 of file BESXMLDefineCommand.cc.

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

Here is the call graph for this function:

p_xmlcmd_builder BESXMLCommand::find_command ( const string &  cmd_str)
staticinherited

Find the BESXMLCommand creation function with the given name.

Parameters
cmd_strThe 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().

virtual BESDataHandlerInterface& BESXMLCommand::get_dhi ( )
inlinevirtualinherited

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 BESXMLCommand::_dhi.

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

virtual bool BESXMLDefineCommand::has_response ( )
inlinevirtual

Has a response handler been created given the request document?

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

Implements BESXMLCommand.

Definition at line 65 of file BESXMLDefineCommand.h.

void BESXMLDefineCommand::parse_request ( xmlNode *  node)
virtual

parse a show command.

No properties or children elements

<define name="d" space="default"> <container name="c"> <constraint>a valid ce</constraint> <attributes>list of attributes</attributes> </container> <aggregate handler="someHandler" cmd="someCommand" /> </define>

Requires the name property. The space property is optional. Requires at least one container element. The container element requires the name property. The constraint and attribute elements of container are optional. The aggregate element is optional.

Parameters
nodexml2 element node pointer

Implements BESXMLCommand.

Definition at line 67 of file BESXMLDefineCommand.cc.

References BESXMLCommand::_dhi, BESXMLCommand::_str_cmd, BESDataHandlerInterface::action, BESDataHandlerInterface::data, DEF_NAME, DEFINE_RESPONSE, DEFINE_RESPONSE_STR, BESXMLUtils::GetFirstChild(), BESXMLUtils::GetNextChild(), BESXMLUtils::GetNodeInfo(), BESXMLCommand::set_response(), and STORE_NAME.

Here is the call graph for this function:

void BESXMLDefineCommand::prep_request ( )
virtual

Member Data Documentation


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