25#ifndef _response_builder_h
26#define _response_builder_h
31#define DAP_PROTOCOL_VERSION "3.2"
33#undef DAP2_STORED_RESULTS
41class BRDRequestHandler;
44class ConstraintEvaluator;
65 friend class ResponseBuilderTest;
68 std::string d_dataset;
89#ifdef DAP2_STORED_RESULTS
90 bool store_dap2_result(ostream &out, libdap::DDS &dds, libdap::ConstraintEvaluator &eval);
93 void send_dap4_data_using_ce(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headersr);
95 void intern_dap4_data_grp(libdap::D4Group *grp);
108 virtual std::string
get_ce()
const;
110 virtual void set_ce(std::string _ce);
120 virtual std::string get_store_result()
const;
122 virtual void set_store_result(std::string _sr);
124 virtual std::string get_async_accepted()
const;
126 virtual void set_async_accepted(std::string _aa);
128 virtual std::string get_btp_func_ce()
const {
132 virtual void set_btp_func_ce(std::string _ce) {
140 virtual void split_ce(libdap::ConstraintEvaluator &eval,
const std::string &expr =
"");
142 virtual void send_das(std::ostream &out, libdap::DAS &das,
bool with_mime_headers =
true)
const;
144 virtual void send_das(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
bool constrained =
145 false,
bool with_mime_headers =
true);
147 virtual void send_dds(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
bool constrained =
148 false,
bool with_mime_headers =
true);
151 bool ce_eval =
true);
153 virtual void send_dap2_data(std::ostream &data_stream, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
154 bool with_mime_headers =
true);
156 virtual void send_dap2_data(
BESDataHandlerInterface &dhi, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
157 bool with_mime_headers =
true);
170 virtual void send_ddx(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator &eval,
171 bool with_mime_headers =
true);
173#ifdef DAP2_STORED_RESULTS
174 virtual void serialize_dap2_data_ddx(std::ostream &out, libdap::DDS **dds, libdap::ConstraintEvaluator & eval,
175 const std::string &boundary,
const std::string &start,
bool ce_eval =
true);
178 virtual void send_dmr(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headers =
true);
180 virtual void send_dap4_data(std::ostream &out, libdap::DMR &dmr,
bool with_mime_headers =
true);
182 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)
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.
std::string d_dap2ce
Name of the dataset/database.
virtual void set_dap4ce(std::string _ce)
virtual libdap::DDS * process_dap2_dds(BESResponseObject *obj, BESDataHandlerInterface &dhi)
Transmit data.
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.
std::string d_async_accepted
Version string for the library's default protocol version.
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
The BTP functions, extracted from the CE.
virtual void set_dap4function(std::string _func)
virtual bool store_dap4_result(std::ostream &out, libdap::DMR &dmr)
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.