33#include "BESXMLGetDataDDXCommand.h"
34#include "BESDefinitionStorageList.h"
35#include "BESDefinitionStorage.h"
37#include "BESDapNames.h"
38#include "BESResponseNames.h"
39#include "BESXMLUtils.h"
41#include "BESSyntaxUserError.h"
62 if (name != GET_RESPONSE) {
63 string err =
"The specified command " + name +
" is not a get command";
67 string type = props[
"type"];
68 if (type.empty() || type != DATADDX_SERVICE) {
69 string err = name +
" command: data product must be " + DATADDX_SERVICE;
81 while (cnode && (elems < 2)) {
82 if (cname ==
"contentStartId") {
83 if (!_contentStartId.empty()) {
84 string err = name +
" command: contentStartId has multiple values";
87 _contentStartId = cval;
91 if (cname ==
"mimeBoundary") {
92 if (!_mimeBoundary.empty()) {
93 string err = name +
" command: mimeBoundary has multiple values";
103 if (_contentStartId.empty()) {
104 string err = name +
" command: contentStartId not specified";
107 if (_mimeBoundary.empty()) {
108 string err = name +
" command: mimeBoundary not specified";
126 d_xmlcmd_dhi.data[DATADDX_STARTID] = _contentStartId;
127 d_xmlcmd_dhi.data[DATADDX_BOUNDARY] = _mimeBoundary;
138 strm << BESIndent::LMarg <<
"BESXMLGetDataDDXCommand::dump - (" << (
void *)
this <<
")" << endl;
141 BESIndent::UnIndent();
Structure storing information used by the BES to handle the request.
error thrown if there is a user syntax error in the request or any other user error
Base class for the BES's commands.
virtual void dump(std::ostream &strm) const
dumps information about this object
virtual void set_response()
The request has been parsed, use the command action name to set the response handler.
std::string d_cmd_log_info
Used only for the log.
virtual void prep_request()
Prepare any information needed to execute the request of this get command.
virtual void parse_basic_get(const std::string &type, std::map< std::string, std::string > &props)
Extract information from the 'props' map.
virtual void prep_request()
prepare the get dataddx command
virtual void dump(ostream &strm) const
dumps information about this object
virtual void parse_request(xmlNode *node)
parse a get dataddx command.
static void GetNodeInfo(xmlNode *node, std::string &name, std::string &value, std::map< std::string, std::string > &props)
get the name, value if any, and any properties for the specified node
static xmlNode * GetFirstChild(xmlNode *node, std::string &child_name, std::string &child_value, std::map< std::string, std::string > &child_props)
get the first element child node for the given node
static xmlNode * GetNextChild(xmlNode *child_node, std::string &next_name, std::string &next_value, std::map< std::string, std::string > &next_props)
get the next element child node after the given child node