105 BESDEBUG(MODULE, prolog <<
"BEGIN" << endl);
107 bool add_production_metadata =
true;
111 auto dmr = bdmr->get_dmr();
116 dmrpp.set_factory(&dtf);
118 XMLWriter dmr_writer;
119 dmr->print_dap4(dmr_writer,
false);
124 oss << dmr_writer.get_doc();
126 istringstream iss(oss.str());
129 parser.intern(iss, &dmrpp,
false);
135 string dataset_name = (*(dhi.containers.begin()))->access();
136 string href_url = (*(dhi.containers.begin()))->get_real_name();
142 build_dmrpp_util::add_chunk_information(dataset_name, &dmrpp,
false);
144 if (add_production_metadata) {
145 build_dmrpp_util::inject_build_dmrpp_metadata(&dmrpp);
148 XMLWriter dmrpp_writer;
149 dmrpp.print_dmrpp(dmrpp_writer, href_url);
151 dap_utils::log_response_and_memory_size(prolog, dmrpp_writer);
153 auto &strm = dhi.get_output_stream();
154 strm << dmrpp_writer.get_doc() << flush;
158 msg << prolog <<
"Using ostream: " << (
void *) &strm << endl;
159 BESDEBUG(MODULE, msg.str());
163 if (!strm)
throw BESInternalError(
"Output stream is not set, can not return as", __FILE__, __LINE__);
174 throw BESDapError(
"Failed to read data: " + e.get_error_message(),
false, e.get_error_code(), __FILE__, __LINE__);
179 catch (std::exception &e) {
180 throw BESInternalError(
"Failed to read data: STL Error: " +
string(e.what()), __FILE__, __LINE__);
183 throw BESInternalError(
"Failed to get read data: Unknown exception caught", __FILE__, __LINE__);
186 BESDEBUG(MODULE, prolog <<
"END Transmitted DMRPP XML" << endl);