40 #include "BESDataResponseHandler.h" 41 #include "BESDataDDSResponse.h" 42 #include "BESRequestHandlerList.h" 43 #include "BESDapNames.h" 44 #include "BESDataNames.h" 45 #include "BESContextManager.h" 46 #include "BESInternalError.h" 52 BESDataResponseHandler::BESDataResponseHandler(
const string &name )
57 BESDataResponseHandler::~BESDataResponseHandler( )
77 dhi.action_name = DATA_RESPONSE_STR;
80 DDS *dds =
new DDS(NULL,
"virtual");
94 string response_size_limit = BESContextManager::TheManager()->
get_context(
"max_response_size", found);
95 if (found && !response_size_limit.empty()) {
98 long rsl = strtol(response_size_limit.c_str(), &endptr, 10);
99 if (rsl == 0 && errno > 0) {
100 string err = strerror(errno);
102 delete bdds; bdds = 0;
104 + response_size_limit +
") was bad: " + err, __FILE__, __LINE__);
107 dds->set_response_limit(rsl);
111 if (dds->get_keywords().has_keyword(
"dap")) {
112 dds->set_dap_version(dds->get_keywords().get_keyword_value(
"dap"));
139 transmitter->send_response( DATA_SERVICE, _response, dhi ) ;
152 strm << BESIndent::LMarg <<
"BESDataResponseHandler::dump - (" 153 << (
void *)
this <<
")" << endl ;
154 BESIndent::Indent() ;
156 BESIndent::UnIndent() ;
160 BESDataResponseHandler::DataResponseBuilder(
const string &name )
exception thrown if inernal error encountered
response handler that builds an OPeNDAP Data DDS object
virtual string get_context(const string &name, bool &found)
retrieve the value of the specified context from the BES
handler object that knows how to create a specific response object
virtual void transmit(BESTransmitter *transmitter, BESDataHandlerInterface &dhi)
transmit the response object built by the execute command
virtual void execute_each(BESDataHandlerInterface &dhi)
for each container in the given data handler interface, execute the given request ...
void set_constraint(const string &s)
set the constraint for this container
Represents an OPeNDAP DataDDS DAP2 data object within the BES.
virtual void dump(ostream &strm) const
dumps information about this object
Structure storing information used by the BES to handle the request.
string get_constraint() const
retrieve the constraint expression for this container
string get_dap_client_protocol() const
Return the dap version string sent by the client (e.g., the OLFS)
virtual void dump(ostream &strm) const
dumps information about this object
virtual void execute(BESDataHandlerInterface &dhi)
executes the command 'get data for <def_name>' by executing the request for each container in the spe...
void first_container()
set the container pointer to the first container in the containers list
BESContainer * container
pointer to current container in this interface