1 #ifndef Utilities_XrdAdaptor_XrdSource_h
2 #define Utilities_XrdAdaptor_XrdSource_h
4 #include "XrdCl/XrdClXRootDResponses.hh"
16 namespace XrdAdaptor {
20 class XrdSiteStatistics;
21 class XrdStatisticsService;
23 class Source :
public std::enable_shared_from_this<Source> {
32 void handle(std::shared_ptr<ClientRequest>);
34 void handle(RequestList &);
static bool getXrootdSite(XrdCl::File &file, std::string &site)
struct timespec m_lastDowngrade
struct timespec getLastDowngrade() const
edm::propagate_const< std::shared_ptr< XrdSiteStatistics > > m_stats
static void determineHostExcludeString(XrdCl::File &file, const XrdCl::HostList *hostList, std::string &exclude)
void handle(std::shared_ptr< ClientRequest >)
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
void setLastDowngrade(struct timespec now)
const std::string & PrettyID() const
std::shared_ptr< XrdSiteStatistics const > stats() const
edm::propagate_const< std::shared_ptr< XrdCl::File > > m_fh
static bool getDomain(const std::string &host, std::string &domain)
static bool isDCachePool(XrdCl::File &file, const XrdCl::HostList *hostList=nullptr)
std::shared_ptr< XrdCl::File const > fh() const
Source & operator=(const Source &)=delete
const std::string & Site() const
std::shared_ptr< XrdCl::File > getFileHandle()
static bool getXrootdSiteFromURL(std::string url, std::string &site)
edm::propagate_const< std::unique_ptr< QualityMetricSource > > m_qm
const std::string & ExcludeID() const
static bool getHostname(const std::string &id, std::string &hostname)
std::shared_ptr< XrdCl::File > & fh()
const std::string & ID() const
std::shared_ptr< XrdSiteStatistics > & stats()
Source(const Source &)=delete