8 #ifndef SRC_XRDCL_XRDCLREDIRECTORREGISTRY_HH_ 9 #define SRC_XRDCL_XRDCLREDIRECTORREGISTRY_HH_ 24 class IncomingMsgHandler;
25 class OutgoingMsgHandler;
50 virtual void Run(
void *arg );
90 virtual std::string
GetCheckSum(
const std::string &type )
const = 0;
102 virtual long long GetSize()
const = 0;
107 virtual const std::vector<std::string>&
GetReplicas() = 0;
155 typedef std::map< std::string, std::pair<VirtualRedirector*, size_t> >
RedirectorMap;
void Release(const URL &url)
Release the virtual redirector associated with the given URL.
static URL ConvertLocalfile(const URL &url)
virtual ~RedirectJob()
Destructor.
Definition: XrdClRedirectorRegistry.hh:43
virtual std::string GetTargetName() const =0
Gets the file name as specified in the metalink.
The message representation used throughout the system.
Definition: XrdClMessage.hh:29
An interface for metadata redirectors.
Definition: XrdClRedirectorRegistry.hh:59
RedirectorRegistry & operator=(const RedirectorRegistry &)
~RedirectorRegistry()
Destructor.
virtual void Run(void *arg)
Run the user handler.
virtual XRootDStatus Load(ResponseHandler *userHandler)=0
Initializes the object with the content of the metalink file.
XRootDStatus Register(const URL &url)
Creates a new virtual redirector and registers it (async).
A job class for redirect handling in the thread-pool.
Definition: XrdClRedirectorRegistry.hh:30
Definition: XrdSysPthread.hh:165
std::map< std::string, std::pair< VirtualRedirector *, size_t > > RedirectorMap
Definition: XrdClRedirectorRegistry.hh:155
XrdSysMutex pMutex
Definition: XrdClRedirectorRegistry.hh:187
Request status.
Definition: XrdClXRootDResponses.hh:218
virtual int Count(Message *req) const =0
Count how many replicas do we have left to try for given request.
Definition: XrdClAnyObject.hh:25
XRootDStatus RegisterAndWait(const URL &url)
Creates a new virtual redirector and registers it (sync).
virtual ~VirtualRedirector()
Destructor.
Definition: XrdClRedirectorRegistry.hh:65
VirtualRedirector * Get(const URL &url) const
Get a virtual redirector associated with the given URL.
Message handler.
Definition: XrdClPostMasterInterfaces.hh:71
virtual const std::vector< std::string > & GetReplicas()=0
Returns a vector with replicas as given in the meatlink file.
virtual std::vector< std::string > GetSupportedCheckSums() const =0
RedirectJob(IncomingMsgHandler *handler)
Constructor.
Definition: XrdClRedirectorRegistry.hh:36
virtual XRootDStatus HandleRequest(const Message *msg, IncomingMsgHandler *handler)=0
Handle an async response.
Definition: XrdClXRootDResponses.hh:1040
URL representation.
Definition: XrdClURL.hh:30
XRootDStatus RegisterImpl(const URL &url, ResponseHandler *handler)
Register implementation.
IncomingMsgHandler * pHandler
Definition: XrdClRedirectorRegistry.hh:53
RedirectorMap pRegistry
Definition: XrdClRedirectorRegistry.hh:185
Interface for a job to be run by the job manager.
Definition: XrdClJobManager.hh:33
Singleton access to URL to virtual redirector mapping.
Definition: XrdClRedirectorRegistry.hh:118
virtual std::string GetCheckSum(const std::string &type) const =0
virtual long long GetSize() const =0
RedirectorRegistry()
Definition: XrdClRedirectorRegistry.hh:173
static RedirectorRegistry & Instance()
Returns reference to the single instance.