133 string resource_content = BESUtil::file_to_string(d_dmrpp_rresource->get_filename());
135 for (
const auto &apair: content_filters) {
137 BESDEBUG(MODULE, prolog <<
"Replaced " << replace_count <<
" instance(s) of template(" <<
138 apair.first <<
") with " << apair.second <<
" in cached RemoteResource" << endl);
152 if (!d_dmrpp_rresource) {
153 BESDEBUG(MODULE, prolog <<
"Building new RemoteResource (dmr++)." << endl);
159 const string dmrpp_url_str = data_access_url_str +
".dmrpp";
162 const string missing_data_url_str = data_access_url_str+
".missing";
164 BESDEBUG(MODULE, prolog <<
" data_access_url: " << data_access_url_str << endl);
165 BESDEBUG(MODULE, prolog <<
" dmrpp_url: " << dmrpp_url_str << endl);
166 BESDEBUG(MODULE, prolog <<
"missing_data_url: " << missing_data_url_str << endl);
168 const string href = R
"(href=")";
170 const string data_access_url_key = href + DATA_ACCESS_URL_KEY + R
"(")";
171 const string missing_data_access_url_key = href + MISSING_DATA_ACCESS_URL_KEY + R
"(")";
173 const string trusted_url_hack = R
"(" dmrpp:trust="true")";
175 const string data_access_url_with_trusted_attr_str = href + data_access_url_str + trusted_url_hack;
176 const string missing_data_url_with_trusted_attr_str = href + missing_data_url_str + trusted_url_hack;
178 BESDEBUG(MODULE, prolog <<
" data_access_url_key: " << data_access_url_key << endl);
179 BESDEBUG(MODULE, prolog <<
" data_access_url_trusted: " << data_access_url_with_trusted_attr_str << endl);
180 BESDEBUG(MODULE, prolog <<
"missing_data_access_url_key: " << missing_data_access_url_key << endl);
181 BESDEBUG(MODULE, prolog <<
" missing_data_url_trusted: " << missing_data_url_with_trusted_attr_str << endl);
183 auto dmrpp_url = std::make_shared<http::url>(dmrpp_url_str,
true);
188 d_dmrpp_rresource = std::make_shared<http::RemoteResource>(dmrpp_url);
190 BES_STOPWATCH_START(MODULE, prolog +
"Timing DMR++ retrieval. Target url: " + dmrpp_url->str());
191 d_dmrpp_rresource->retrieve_resource();
194 map<string, string, std::less<>> content_filters;
195 if (S3RequestHandler::d_inject_data_url) {
196 content_filters.insert(pair<string, string>(data_access_url_key, data_access_url_with_trusted_attr_str));
197 content_filters.insert(pair<string, string>(missing_data_access_url_key, missing_data_url_with_trusted_attr_str));
203 BESDEBUG(MODULE, prolog <<
"Done retrieving: " << dmrpp_url->str() <<
" returning cached file "
204 << d_dmrpp_rresource->get_filename() << endl);
207 const auto type = d_dmrpp_rresource->get_type();
210 BESDEBUG(MODULE, prolog <<
"Type: " << type << endl);
211 BESDEBUG(MODULE, prolog <<
"END (obj_addr: " << (
void *)
this <<
")" << endl);
213 return d_dmrpp_rresource->get_filename();
virtual std::string get_context(const std::string &name, bool &found)
retrieve the value of the specified context from the BES
static unsigned int replace_all(std::string &s, std::string find_this, std::string replace_with_this)
Operates on the string 's' to replaces every occurrence of the value of the string 'find_this' with t...