File indexing completed on 2025-06-17 01:30:27
0001 #ifndef FWCore_Services_SiteLocalConfigService_H
0002 #define FWCore_Services_SiteLocalConfigService_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <string>
0013 #include <list>
0014 #include <vector>
0015 #include "FWCore/Catalog/interface/SiteLocalConfig.h"
0016 #include "FWCore/Utilities/interface/propagate_const.h"
0017 #include "tinyxml2.h"
0018
0019
0020
0021
0022 namespace edm {
0023 class ParameterSet;
0024 }
0025
0026
0027
0028
0029
0030 namespace edm {
0031 class ConfigurationDescriptions;
0032 namespace service {
0033
0034 class SiteLocalConfigService : public SiteLocalConfig {
0035 public:
0036 explicit SiteLocalConfigService(ParameterSet const& pset);
0037
0038 std::vector<std::string> const& trivialDataCatalogs() const override;
0039 std::vector<edm::CatalogAttributes> const& dataCatalogs() const override;
0040 std::filesystem::path const storageDescriptionPath(edm::CatalogAttributes const& aDataCatalog) const override;
0041 std::string const lookupCalibConnect(std::string const& input) const override;
0042
0043 std::string const* sourceCacheTempDir() const override;
0044 double const* sourceCacheMinFree() const override;
0045 std::string const* sourceCacheHint() const override;
0046 std::string const* sourceCloneCacheHint() const override;
0047 std::string const* sourceReadHint() const override;
0048 unsigned int const* sourceTTreeCacheSize() const override;
0049 unsigned int const* sourceTimeout() const override;
0050 bool enablePrefetching() const override;
0051 unsigned int debugLevel() const override;
0052 std::vector<std::string> const* sourceNativeProtocols() const override;
0053 struct addrinfo const* statisticsDestination() const override;
0054 std::set<std::string> const* statisticsInfo() const override;
0055 std::string const& siteName() const override;
0056 std::string const& subSiteName() const override;
0057 bool useLocalConnectString() const override;
0058 std::string const& localConnectPrefix() const override;
0059 std::string const& localConnectSuffix() const override;
0060
0061
0062
0063 ~SiteLocalConfigService() override;
0064
0065 static void fillDescriptions(ConfigurationDescriptions& descriptions);
0066
0067 private:
0068 void getCatalog(tinyxml2::XMLElement const& cat, std::string site, std::string subSite);
0069 void parse(std::string const& url);
0070 void computeStatisticsDestination();
0071 std::string const frontierConnect(std::string const& servlet) const;
0072 std::string m_url;
0073 std::vector<std::string> m_trivialDataCatalogs;
0074 std::vector<edm::CatalogAttributes> m_dataCatalogs;
0075 std::string m_frontierConnect;
0076 bool m_connected;
0077 std::string m_cacheTempDir;
0078 std::string const* m_cacheTempDirPtr;
0079 double m_cacheMinFree;
0080 double const* m_cacheMinFreePtr;
0081 std::string m_cacheHint;
0082 std::string const* m_cacheHintPtr;
0083 std::string m_cloneCacheHint;
0084 std::string const* m_cloneCacheHintPtr;
0085 std::string m_readHint;
0086 std::string const* m_readHintPtr;
0087 unsigned int m_ttreeCacheSize;
0088 unsigned int const* m_ttreeCacheSizePtr;
0089 unsigned int m_timeout;
0090 unsigned int const* m_timeoutPtr;
0091 unsigned int m_debugLevel;
0092 bool m_enablePrefetching;
0093 bool const* m_enablePrefetchingPtr;
0094 std::vector<std::string> m_nativeProtocols;
0095 std::vector<std::string> const* m_nativeProtocolsPtr;
0096 std::string m_statisticsDestination;
0097 edm::propagate_const<struct addrinfo*> m_statisticsAddrInfo;
0098 static const std::string m_statisticsDefaultPort;
0099 std::set<std::string> m_statisticsInfo;
0100 bool m_statisticsInfoAvail;
0101 std::string m_siteName;
0102 std::string m_subSiteName;
0103 bool m_useLocalConnectString = false;
0104 std::string m_localConnectPrefix;
0105 std::string m_localConnectSuffix;
0106 };
0107
0108 }
0109 }
0110
0111
0112
0113
0114 #endif