61class NgapOwnedContainer:
public BESContainer {
63 std::string d_ngap_path;
64 static std::string d_data_source_location;
65 static bool d_use_opendap_bucket;
66 static bool d_inject_data_url;
68 bool get_dmrpp_from_cache_or_remote_source(std::string &dmrpp_string)
const;
72 static bool file_to_string(
int fd, std::string &content);
74 static bool get_daac_content_filters(
const std::string &data_url, std::map<std::string, std::string, std::less<>> &content_filters);
75 static bool get_opendap_content_filters(std::map<std::string, std::string, std::less<>> &content_filters);
76 static void filter_response(
const std::map<std::string, std::string, std::less<>> &content_filters, std::string &content);
78 static std::string build_dmrpp_url_to_owned_bucket(
const std::string &rest_path,
const std::string &data_source);
79 static std::string build_data_url_to_daac_bucket(
const std::string &rest_path);
81 bool dmrpp_read_from_opendap_bucket(std::string &dmrpp_string)
const;
82 void dmrpp_read_from_daac_bucket(std::string &dmrpp_string)
const;
84 bool get_item_from_dmrpp_cache(std::string &dmrpp_string)
const;
85 bool put_item_in_dmrpp_cache(
const std::string &dmrpp_string)
const;
87 friend class NgapOwnedContainerTest;
90 void _duplicate(NgapOwnedContainer ©_to) {
91 copy_to.d_ngap_path = d_ngap_path;
96 NgapOwnedContainer() =
default;
97 NgapOwnedContainer(
const NgapOwnedContainer ©_from) =
delete;
98 NgapOwnedContainer(NgapOwnedContainer &&move_from) =
delete;
99 NgapOwnedContainer &operator=(
const NgapOwnedContainer &rhs) =
delete;
100 NgapOwnedContainer &operator=(NgapOwnedContainer &&rhs) =
delete;
101 ~NgapOwnedContainer()
override =
default;
103 NgapOwnedContainer(
const std::string &sym_name,
const std::string &real_name,
const std::string &);
106 auto container = std::make_unique<NgapOwnedContainer>();
107 _duplicate(*container);
108 return container.release();
111 void set_ngap_path(
const std::string &ngap_path) { d_ngap_path = ngap_path; }
112 std::string get_ngap_path()
const {
return d_ngap_path; }
116 d_data_source_location = data_source_location;
118 static std::string get_data_source_location() {
return d_data_source_location; }
120 std::string
access()
override;
122 bool release()
override {
126 void dump(std::ostream &strm)
const override;