38 #include <sys/types.h>
47 #include <ConstraintEvaluator.h>
50 #include <BESInternalError.h>
51 #include <BESDapError.h>
52 #include <TheBESKeys.h>
53 #include <BESContextManager.h>
54 #include <BESDataDDSResponse.h>
55 #include <BESDDSResponse.h>
56 #include <BESDapNames.h>
57 #include <BESDataNames.h>
58 #include <BESDapResponseBuilder.h>
60 #include <DapFunctionUtils.h>
62 #include "FoDapCovJsonTransmitter.h"
63 #include "FoDapCovJsonTransform.h"
67 #define FO_COVJSON_TEMP_DIR "/tmp"
69 string FoDapCovJsonTransmitter::temp_dir;
87 if (FoDapCovJsonTransmitter::temp_dir.empty()) {
90 string key =
"FoCovJson.Tempdir";
92 if (!found || FoDapCovJsonTransmitter::temp_dir.empty()) {
93 FoDapCovJsonTransmitter::temp_dir = FO_COVJSON_TEMP_DIR;
95 string::size_type len = FoDapCovJsonTransmitter::temp_dir.length();
96 if (FoDapCovJsonTransmitter::temp_dir[len - 1] ==
'/') {
97 FoDapCovJsonTransmitter::temp_dir = FoDapCovJsonTransmitter::temp_dir.substr(0, len - 1);
119 BESDEBUG(
"focovjson",
"FoDapCovJsonTransmitter::send_data - BEGIN" << endl);
124 BESDEBUG(
"focovjson",
"FoCovJsonTransmitter::send_data - Reading data into DataDDS" << endl);
137 ostream &o_strm = dhi.get_output_stream();
139 throw BESInternalError(
"Output stream is not set, can not return as COVJSON", __FILE__, __LINE__);
142 ft.transform(o_strm,
true,
false);
145 throw BESDapError(
"Failed to read data: " + e.get_error_message(),
false, e.get_error_code(), __FILE__, __LINE__);
150 catch (std::exception &e) {
151 throw BESInternalError(
"Failed to read data: STL Error: " +
string(e.what()), __FILE__, __LINE__);
154 throw BESInternalError(
"Failed to get read data: Unknown exception caught", __FILE__, __LINE__);
157 BESDEBUG(
"focovjson",
"FoDapCovJsonTransmitter::send_data - done transmitting COVJSON" << endl);
177 BESDEBUG(
"focovjson",
"FoDapCovJsonTransmitter::send_data - BEGIN transmitting COVJSON" << endl);
185 ostream &o_strm = dhi.get_output_stream();
187 throw BESInternalError(
"Output stream is not set, can not return as COVJSON", __FILE__, __LINE__);
195 ft.transform(o_strm,
false,
false);
198 throw BESDapError(
"Failed to transform data to COVJSON: " + e.get_error_message(),
false, e.get_error_code(),
205 throw BESInternalError(
"Failed to transform to COVJSON: Unknown exception caught", __FILE__, __LINE__);
208 BESDEBUG(
"focovjson",
"FoDapCovJsonTransmitter::send_data - done transmitting COVJSON" << endl);