File indexing completed on 2025-04-24 01:27:56
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
0031 std::string const* sourceCacheTempDir() const final { return nullptr; }
0032 double const* sourceCacheMinFree() const final { return nullptr; }
0033 std::string const* sourceCacheHint() const final { return nullptr; }
0034 std::string const* sourceCloneCacheHint() const final { return nullptr; }
0035 std::string const* sourceReadHint() const final { return nullptr; }
0036 unsigned int const* sourceTTreeCacheSize() const final { return nullptr; }
0037 unsigned int const* sourceTimeout() const final { return nullptr; }
0038 bool enablePrefetching() const final { return false; }
0039 unsigned int debugLevel() const final { return 0; }
0040 std::vector<std::string> const* sourceNativeProtocols() const final { return nullptr; }
0041 struct addrinfo const* statisticsDestination() const final { return nullptr; }
0042 std::set<std::string> const* statisticsInfo() const final { return nullptr; }
0043 std::string const& siteName(void) const final { return m_emptyString; }
0044 std::string const& subSiteName(void) const final { return m_emptyString; }
0045 bool useLocalConnectString() const final { return false; }
0046 std::string const& localConnectPrefix() const final { return m_emptyString; }
0047 std::string const& localConnectSuffix() const final { return m_emptyString; }
0048
0049 private:
0050 std::vector<std::string> m_trivialCatalogs;
0051 std::vector<edm::CatalogAttributes> m_catalogs;
0052 std::filesystem::path m_storageDescription_path;
0053 std::string m_emptyString;
0054 };
0055
0056 inline edm::ServiceToken makeTestSiteLocalConfigToken() {
0057
0058 edm::CatalogAttributes aCatalog;
0059 aCatalog.site = "T1_US_FNAL";
0060 aCatalog.subSite = "T1_US_FNAL";
0061 aCatalog.storageSite = "T1_US_FNAL";
0062 aCatalog.volume = "American_Federation";
0063 aCatalog.protocol = "XRootD";
0064 std::vector<edm::CatalogAttributes> tmp{aCatalog};
0065
0066 aCatalog.site = "T1_US_FNAL";
0067 aCatalog.subSite = "T1_US_FNAL";
0068 aCatalog.storageSite = "T1_US_FNAL";
0069 aCatalog.volume = "FNAL_dCache_EOS";
0070 aCatalog.protocol = "XRootD";
0071 tmp.push_back(aCatalog);
0072
0073 aCatalog.site = "T1_US_FNAL";
0074 aCatalog.subSite = "T1_US_FNAL";
0075 aCatalog.storageSite = "T1_US_FNAL";
0076 aCatalog.volume = "FNAL_dCache_EOS";
0077 aCatalog.protocol = "root";
0078 tmp.push_back(aCatalog);
0079
0080
0081 return edm::ServiceToken(edm::ServiceRegistry::createContaining(
0082 std::unique_ptr<edm::SiteLocalConfig>(std::make_unique<TestSiteLocalConfig>(std::move(tmp)))));
0083 }
0084 }
0085
0086 #endif