25 #ifndef _response_builder_h
26 #define _response_builder_h
31 #define DAP_PROTOCOL_VERSION "3.2"
33 #undef DAP2_STORED_RESULTS
41 class BRDRequestHandler;
44 class ConstraintEvaluator;
65 friend class ResponseBuilderTest;
68 std::string d_dataset;
94 #ifdef DAP2_STORED_RESULTS
95 bool store_dap2_result(ostream &out, libdap::DDS &dds, libdap::ConstraintEvaluator &eval);
98 void send_dap4_data_using_ce(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headersr);
100 void intern_dap4_data_grp(libdap::D4Group *grp);
115 virtual std::string
get_ce()
const;
117 virtual void set_ce(std::string _ce);
127 virtual std::string get_store_result()
const;
129 virtual void set_store_result(std::string _sr);
131 virtual std::string get_async_accepted()
const;
133 virtual void set_async_accepted(std::string _aa);
135 virtual std::string get_btp_func_ce()
const {
139 virtual void set_btp_func_ce(std::string _ce) {
169 virtual void split_ce(libdap::ConstraintEvaluator &eval,
const std::string &expr =
"");
171 virtual void send_das(std::ostream &out, libdap::DAS &das,
bool with_mime_headers =
true)
const;
173 virtual void send_das(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
bool constrained =
174 false,
bool with_mime_headers =
true);
176 virtual void send_dds(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
bool constrained =
177 false,
bool with_mime_headers =
true);
180 bool ce_eval =
true);
182 virtual void send_dap2_data(std::ostream &data_stream, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
183 bool with_mime_headers =
true);
185 virtual void send_dap2_data(
BESDataHandlerInterface &dhi, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
186 bool with_mime_headers =
true);
199 virtual void send_ddx(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
200 bool with_mime_headers =
true);
202 #ifdef DAP2_STORED_RESULTS
203 virtual void serialize_dap2_data_ddx(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator & eval,
204 const std::string &boundary,
const std::string &start,
bool ce_eval =
true);
207 virtual void send_dmr(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headers =
true);
209 virtual void send_dap4_data(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headers =
true);
211 virtual void serialize_dap4_data(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headers =
true);
Cache the results from server functions.
virtual void set_dataset_name(const std::string _dataset)
Set the dataset pathname.
virtual std::string get_dataset_name() const
Get the dataset name.
virtual libdap::DMR * intern_dap4_data(BESResponseObject *obj, BESDataHandlerInterface &dhi)
void register_timeout() const
std::string d_dap4function
DAP4 Constraint expression.
virtual std::string get_dap4function() const
Get the DAP4 server side function expression.
virtual void split_ce(libdap::ConstraintEvaluator &eval, const std::string &expr="")
virtual std::string get_ce() const
Get the constraint expression.
int d_timeout
The BTP functions, extracted from the CE.
std::string d_dap2ce
Name of the dataset/database.
virtual void set_dap4ce(std::string _ce)
virtual void remove_timeout() const
Transmit data.
virtual libdap::DDS * process_dap2_dds(BESResponseObject *obj, BESDataHandlerInterface &dhi)
Process a DDS (i.e., apply a constraint) for a non-DAP transmitter.
virtual void serialize_dap4_data(std::ostream &out, libdap::DMR &dmr, bool with_mime_headers=true)
virtual libdap::DDS * intern_dap2_data(BESResponseObject *obj, BESDataHandlerInterface &dhi)
virtual void send_dds(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval, bool constrained=false, bool with_mime_headers=true)
Transmit a DDS.
virtual std::string get_dap4ce() const
Get the DAP4 constraint expression.
virtual void dap4_process_ce_for_intern_data(libdap::DMR &dmr)
Parse the DAP4 CE and throw if the request is too large.
virtual void establish_timeout(std::ostream &stream) const
bool d_cancel_timeout_on_send
Version string for the library's default protocol version.
std::string d_async_accepted
Should a timeout be cancelled once transmission starts?
void conditional_timeout_cancel()
virtual void send_ddx(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval, bool with_mime_headers=true)
virtual void serialize_dap2_data_dds(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval, bool ce_eval=true)
std::string d_store_result
std::string d_default_protocol
Response timeout after N seconds.
virtual void set_dap4function(std::string _func)
virtual bool store_dap4_result(std::ostream &out, libdap::DMR &dmr)
void set_timeout(int timeout=0)
virtual void set_ce(std::string _ce)
std::string d_btp_func_ce
DAP4 Server Side Function expression.
std::string d_dap4ce
DAP2 Constraint expression.
Structure storing information used by the BES to handle the request.
Abstract base class representing a specific set of information in response to a request to the BES.