35 #include "BESXMLCommand.h" 36 #include "BESResponseHandlerList.h" 37 #include "BESSyntaxUserError.h" 38 #include "BESDataNames.h" 43 map<string, p_xmlcmd_builder> BESXMLCommand::cmd_list;
62 d_xmlcmd_dhi.response_handler = BESResponseHandlerList::TheList()->
find_handler(d_xmlcmd_dhi.
action);
63 if (!d_xmlcmd_dhi.response_handler) {
64 throw BESSyntaxUserError(
string(
"Command '") + d_xmlcmd_dhi.
action +
"' does not have a registered response handler",
70 VERBOSE( d_xmlcmd_dhi.
data[REQUEST_FROM] <<
" [" 71 << d_xmlcmd_dhi.
data[LOG_INFO] <<
"] parsed" << endl);
86 BESXMLCommand::cmd_list[cmd_str] = cmd;
98 BESXMLCommand::cmd_iter iter = BESXMLCommand::cmd_list.find(cmd_str);
99 if (iter != BESXMLCommand::cmd_list.end()) {
100 BESXMLCommand::cmd_list.erase(iter);
111 return BESXMLCommand::cmd_list[cmd_str];
122 strm << BESIndent::LMarg <<
"BESXMLCommand::dump - (" << (
void *)
this <<
")" << endl;
124 BESIndent::UnIndent();
BESXMLCommand(const BESDataHandlerInterface &base_dhi)
Creates a BESXMLCommand document given a base data handler interface object.
virtual BESResponseHandler * find_handler(const string &handler)
returns the response handler with the given name from the list
virtual void dump(ostream &strm) const
dumps information about this object
error thrown if there is a user syntax error in the request or any other user error ...
void make_copy(const BESDataHandlerInterface ©_from)
deprecated
virtual void set_response()
The request has been parsed, use the command action name to set the response handler.
static p_xmlcmd_builder find_command(const std::string &cmd_str)
Find the BESXMLCommand creation function with the given name.
static bool del_command(const std::string &cmd_str)
Deletes the command called cmd_str from the list of possible commands.
Structure storing information used by the BES to handle the request.
map< string, string > data
the map of string data that will be required for the current request.
static void add_command(const std::string &cmd_str, p_xmlcmd_builder cmd)
Add a command to the possible commands allowed by this BES.
string action
the response object requested, e.g. das, dds
std::string d_cmd_log_info
Used only for the log.