File indexing completed on 2025-01-09 23:33:32
0001 #ifndef FWCore_Catalog_test_TestSiteLocalConfig_h
0002 #define FWCore_Catalog_test_TestSiteLocalConfig_h
0003
0004 #include "FWCore/Catalog/interface/SiteLocalConfig.h"
0005
0006 #include <cstdlib>
0007 #include <filesystem>
0008 #include <string>
0009
0010 namespace edmtest::catalog {
0011 class TestSiteLocalConfig : public edm::SiteLocalConfig {
0012 public:
0013
0014 TestSiteLocalConfig(std::vector<std::string> catalogs) : m_trivialCatalogs(std::move(catalogs)) {}
0015
0016 TestSiteLocalConfig(std::vector<edm::CatalogAttributes> catalogs) : m_catalogs(std::move(catalogs)) {}
0017 std::vector<std::string> const& trivialDataCatalogs() const final { return m_trivialCatalogs; }
0018 std::vector<edm::CatalogAttributes> const& dataCatalogs() const final { return m_catalogs; }
0019 std::filesystem::path const storageDescriptionPath(const edm::CatalogAttributes& aDataCatalog) const final {
0020 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0021 std::string CMSSW_RELEASE_BASE(std::getenv("CMSSW_RELEASE_BASE"));
0022 std::string file_name("/src/FWCore/Catalog/test/storage.json");
0023 std::string full_file_name = std::filesystem::exists((CMSSW_BASE + file_name).c_str())
0024 ? CMSSW_BASE + file_name
0025 : CMSSW_RELEASE_BASE + file_name;
0026 return full_file_name;
0027 }
0028
0029 std::string const lookupCalibConnect(std::string const& input) const final { return std::string(); }
0030 std::string const rfioType(void) const final { return std::string(); }
0031
0032 std::string const* sourceCacheTempDir() const final { return nullptr; }
0033 double const* sourceCacheMinFree() const final { return nullptr; }
0034 std::string const* sourceCacheHint() const final { return nullptr; }
0035 std::string const* sourceCloneCacheHint() const final { return nullptr; }
0036 std::string const* sourceReadHint() const final { return nullptr; }
0037 unsigned int const* sourceTTreeCacheSize() const final { return nullptr; }
0038 unsigned int const* sourceTimeout() const final { return nullptr; }
0039 bool enablePrefetching() const final { return false; }
0040 unsigned int debugLevel() const final { return 0; }
0041 std::vector<std::string> const* sourceNativeProtocols() const final { return nullptr; }
0042 struct addrinfo const* statisticsDestination() const final { return nullptr; }
0043 std::set<std::string> const* statisticsInfo() const final { return nullptr; }
0044 std::string const& siteName(void) const final { return m_emptyString; }
0045 std::string const& subSiteName(void) const final { return m_emptyString; }
0046 bool useLocalConnectString() const final { return false; }
0047 std::string const& localConnectPrefix() const final { return m_emptyString; }
0048 std::string const& localConnectSuffix() const final { return m_emptyString; }
0049
0050 private:
0051 std::vector<std::string> m_trivialCatalogs;
0052 std::vector<edm::CatalogAttributes> m_catalogs;
0053 std::filesystem::path m_storageDescription_path;
0054 std::string m_emptyString;
0055 };
0056
0057 inline edm::ServiceToken makeTestSiteLocalConfigToken() {
0058
0059 edm::CatalogAttributes aCatalog;
0060 aCatalog.site = "T1_US_FNAL";
0061 aCatalog.subSite = "T1_US_FNAL";
0062 aCatalog.storageSite = "T1_US_FNAL";
0063 aCatalog.volume = "American_Federation";
0064 aCatalog.protocol = "XRootD";
0065 std::vector<edm::CatalogAttributes> tmp{aCatalog};
0066
0067 aCatalog.site = "T1_US_FNAL";
0068 aCatalog.subSite = "T1_US_FNAL";
0069 aCatalog.storageSite = "T1_US_FNAL";
0070 aCatalog.volume = "FNAL_dCache_EOS";
0071 aCatalog.protocol = "XRootD";
0072 tmp.push_back(aCatalog);
0073
0074 aCatalog.site = "T1_US_FNAL";
0075 aCatalog.subSite = "T1_US_FNAL";
0076 aCatalog.storageSite = "T1_US_FNAL";
0077 aCatalog.volume = "FNAL_dCache_EOS";
0078 aCatalog.protocol = "root";
0079 tmp.push_back(aCatalog);
0080
0081
0082 return edm::ServiceToken(edm::ServiceRegistry::createContaining(
0083 std::unique_ptr<edm::SiteLocalConfig>(std::make_unique<TestSiteLocalConfig>(std::move(tmp)))));
0084 }
0085 }
0086
0087 #endif