File indexing completed on 2025-04-24 01:27:56
0001 #ifndef FWCore_Catalog_SiteLocalConfig_h
0002 #define FWCore_Catalog_SiteLocalConfig_h
0003
0004
0005
0006
0007
0008
0009
0010 #include <set>
0011 #include <string>
0012 #include <vector>
0013 #include <netdb.h>
0014 #include <filesystem>
0015
0016
0017
0018 namespace edm {
0019 class ParameterSet;
0020 class ActivityRegistry;
0021
0022
0023 struct CatalogAttributes {
0024 CatalogAttributes() = default;
0025 CatalogAttributes(std::string input_site,
0026 std::string input_subSite,
0027 std::string input_storageSite,
0028 std::string input_volume,
0029 std::string input_protocol)
0030 : site(std::move(input_site)),
0031 subSite(std::move(input_subSite)),
0032 storageSite(std::move(input_storageSite)),
0033 volume(std::move(input_volume)),
0034 protocol(std::move(input_protocol)) {}
0035 bool operator==(const CatalogAttributes& aCatalog) const {
0036 return site == aCatalog.site && subSite == aCatalog.subSite && storageSite == aCatalog.storageSite &&
0037 volume == aCatalog.volume && protocol == aCatalog.protocol;
0038 }
0039 bool empty() const { return site.empty() && storageSite.empty() && volume.empty() && protocol.empty(); }
0040 std::string site;
0041 std::string subSite;
0042 std::string storageSite;
0043 std::string volume;
0044 std::string protocol;
0045 };
0046
0047 enum class CatalogType { TrivialCatalog, RucioCatalog };
0048 }
0049
0050
0051
0052
0053
0054 namespace edm {
0055 class SiteLocalConfig {
0056 public:
0057 SiteLocalConfig() {}
0058 virtual ~SiteLocalConfig() {}
0059
0060 virtual std::vector<std::string> const& trivialDataCatalogs() const = 0;
0061 virtual std::vector<edm::CatalogAttributes> const& dataCatalogs() const = 0;
0062 virtual std::filesystem::path const storageDescriptionPath(const edm::CatalogAttributes& aDataCatalog) const = 0;
0063 virtual std::string const lookupCalibConnect(std::string const& input) const = 0;
0064
0065 virtual std::string const* sourceCacheTempDir() const = 0;
0066 virtual double const* sourceCacheMinFree() const = 0;
0067 virtual std::string const* sourceCacheHint() const = 0;
0068 virtual std::string const* sourceCloneCacheHint() const = 0;
0069 virtual std::string const* sourceReadHint() const = 0;
0070 virtual unsigned int const* sourceTTreeCacheSize() const = 0;
0071 virtual unsigned int const* sourceTimeout() const = 0;
0072 virtual bool enablePrefetching() const = 0;
0073 virtual unsigned int debugLevel() const = 0;
0074 virtual std::vector<std::string> const* sourceNativeProtocols() const = 0;
0075 virtual struct addrinfo const* statisticsDestination() const = 0;
0076 virtual std::set<std::string> const* statisticsInfo() const = 0;
0077 virtual std::string const& siteName(void) const = 0;
0078 virtual std::string const& subSiteName(void) const = 0;
0079 virtual bool useLocalConnectString() const = 0;
0080 virtual std::string const& localConnectPrefix() const = 0;
0081 virtual std::string const& localConnectSuffix() const = 0;
0082
0083
0084
0085 private:
0086 };
0087 }
0088
0089
0090
0091
0092 #endif