Go to the documentation of this file.
25 #ifndef __XRD_CL_FILE_STATE_HANDLER_HH__
26 #define __XRD_CL_FILE_STATE_HANDLER_HH__
48 class PgReadRetryHandler;
49 class PgReadSubstitutionHandler;
55 class ResponseHandlerHolder;
81 friend class ::PgReadHandler;
82 friend class ::PgReadRetryHandler;
83 friend class ::PgReadSubstitutionHandler;
84 friend class ::OpenHandler;
133 uint16_t timeout = 0 );
144 uint16_t timeout = 0 );
159 uint16_t timeout = 0 );
182 uint16_t timeout = 0 );
202 uint16_t timeout = 0 );
220 PgReadHandler *handler,
221 uint16_t timeout = 0 );
243 uint16_t timeout = 0 );
260 uint16_t timeout = 0 );
276 uint16_t timeout = 0 );
297 uint16_t timeout = 0 );
309 uint16_t timeout = 0 );
322 uint16_t timeout = 0 );
337 uint16_t timeout = 0 );
350 uint16_t timeout = 0 );
364 const struct iovec *
iov,
367 uint16_t timeout = 0 );
384 uint16_t timeout = 0 );
400 uint16_t timeout = 0 );
413 uint16_t timeout = 0 );
429 uint16_t timeout = 0 );
445 uint16_t timeout = 0 );
461 uint16_t timeout = 0 );
475 uint16_t timeout = 0 );
490 uint16_t timeout = 0 );
507 uint16_t timeout = 0 );
521 const struct iovec *
iov,
524 uint16_t timeout = 0 );
572 bool SetProperty(
const std::string &name,
const std::string &value );
579 bool GetProperty(
const std::string &name, std::string &value )
const;
626 request(r), handler(h), params(p) {}
644 const std::vector<T> &attrs,
646 uint16_t timeout = 0 );
715 pOpenTime.tv_sec = 0; pOpenTime.tv_usec = 0;
748 std::unique_ptr<XrdSys::KernelBuffer> kbuff,
807 #endif // __XRD_CL_FILE_STATE_HANDLER_HH__
bool SetProperty(const std::string &name, const std::string &value)
XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdClMessageUtils.hh:132
Handle an async response.
Definition: XrdClXRootDResponses.hh:1051
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0)
Status RunRecovery()
Run the recovery procedure if appropriate.
Definition: XrdSysPthread.hh:165
Definition: XrdClLocalFileHandler.hh:33
XRootDStatus pStatus
Definition: XrdClFileStateHandler.hh:754
XRootDStatus pCloseReason
Definition: XrdClFileStateHandler.hh:787
Flags
PgRead flags.
Definition: XrdClFileStateHandler.hh:68
void Tick(time_t now)
Tick.
~FileStateHandler()
Destructor.
XRootDStatus GetXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
bool IsOpen() const
Check if the file is open.
RequestData()
Definition: XrdClFileStateHandler.hh:623
XRootDStatus ReOpenFileAtServer(const URL &url, uint16_t timeout)
Re-open the current file at a given server.
PgRead flags.
Definition: XrdClFileStateHandler.hh:63
void FailMessage(RequestData rd, XRootDStatus status)
Fail a message.
XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout=0)
URL * pLoadBalancer
Definition: XrdClFileStateHandler.hh:758
XRootDStatus TryOtherServer(uint16_t timeout)
Try other data server.
unsigned char kXR_char
Definition: XPtypes.hh:65
uint64_t pWBytes
Definition: XrdClFileStateHandler.hh:780
Handle the stateful operations.
Definition: XrdClFileStateHandler.hh:80
FileStatus pFileState
Definition: XrdClFileStateHandler.hh:753
URL * pDataServer
Definition: XrdClFileStateHandler.hh:757
bool IsReadOnly() const
Check if the file is open for read only.
ResponseHandlerHolder * pReOpenHandler
Definition: XrdClFileStateHandler.hh:793
void ResetMonitoringVars()
Reset monitoring vars.
Definition: XrdClFileStateHandler.hh:713
Status XAttrOperationImpl(kXR_char subcode, kXR_char options, const std::vector< T > &attrs, ResponseHandler *handler, uint16_t timeout=0)
RequestList pToBeRecovered
Definition: XrdClFileStateHandler.hh:764
XRootDStatus WriteKernelBuffer(uint64_t offset, uint32_t length, std::unique_ptr< XrdSys::KernelBuffer > kbuff, ResponseHandler *handler, uint16_t timeout)
Send a write request with payload being stored in a kernel buffer.
FileStateHandler(bool useVirtRedirector, FilePlugIn *&plugin)
uint8_t * pFileHandle
Definition: XrdClFileStateHandler.hh:761
ResponseHandler * handler
Definition: XrdClFileStateHandler.hh:628
XRootDStatus IssueRequest(const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams)
@ OpenInProgress
Opening is in progress.
Definition: XrdClFileStateHandler.hh:96
The message representation used throughout the system.
Definition: XrdClMessage.hh:30
uint64_t pVSegs
Definition: XrdClFileStateHandler.hh:782
XRootDStatus SendClose(uint16_t timeout)
bool pFollowRedirects
Definition: XrdClFileStateHandler.hh:769
uint64_t pVRBytes
Definition: XrdClFileStateHandler.hh:779
void OnStateError(XRootDStatus *status, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams)
Handle an error while sending a stateful message.
An interface for file plug-ins.
Definition: XrdClPlugInInterface.hh:39
void ReSendQueuedMessages()
Re-send queued messages.
uint64_t pVWCount
Definition: XrdClFileStateHandler.hh:786
XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdClFileStateHandler.hh:622
URL * pWrtRecoveryRedir
Definition: XrdClFileStateHandler.hh:760
void OnStateResponse(XRootDStatus *status, Message *message, AnyObject *response, HostList *hostList)
Handle stateful response.
XRootDStatus Write(uint64_t offset, Buffer &&buffer, ResponseHandler *handler, uint16_t timeout=0)
@ Closed
The file is closed.
Definition: XrdClFileStateHandler.hh:92
bool pIsChannelEncrypted
Definition: XrdClFileStateHandler.hh:771
bool GetProperty(const std::string &name, std::string &value) const
Request status.
Definition: XrdClXRootDResponses.hh:219
Message * request
Definition: XrdClFileStateHandler.hh:627
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition: XrdClXRootDResponses.hh:980
StatInfo * pStatInfo
Definition: XrdClFileStateHandler.hh:755
bool pDoRecoverRead
Definition: XrdClFileStateHandler.hh:767
LocalFileHandler * pLFileHandler
Definition: XrdClFileStateHandler.hh:798
#define XRDOUC_ENUM_OPERATORS(T)
Definition: XrdOucEnum.hh:22
uint64_t pRBytes
Definition: XrdClFileStateHandler.hh:778
@ Retry
Definition: XrdClFileStateHandler.hh:70
uint64_t pSessionId
Definition: XrdClFileStateHandler.hh:766
RequestData(Message *r, ResponseHandler *h, const MessageSendParams &p)
Definition: XrdClFileStateHandler.hh:624
XRootDStatus ChkptWrt(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0)
MessageSendParams params
Definition: XrdClFileStateHandler.hh:629
XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
FileStateHandler(FilePlugIn *&plugin)
Constructor.
void OnOpen(const XRootDStatus *status, const OpenInfo *openInfo, const HostList *hostList)
Process the results of the opening operation.
timeval pOpenTime
Definition: XrdClFileStateHandler.hh:777
XRootDStatus SetXAttr(const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus ChkptWrtV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus Checkpoint(kXR_char code, ResponseHandler *handler, uint16_t timeout=0)
@ Opened
Opening has succeeded.
Definition: XrdClFileStateHandler.hh:93
XRootDStatus Open(const std::string &url, uint16_t flags, uint16_t mode, ResponseHandler *handler, uint16_t timeout=0)
void OnStateRedirection(const std::string &redirectUrl, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams)
Handle stateful redirect.
Definition: XrdClOptional.hh:44
bool IsRecoverable(const XRootDStatus &stataus) const
Check if the stateful error is recoverable.
FileStatus
State of the file.
Definition: XrdClFileStateHandler.hh:91
Definition: XrdOucIOVec.hh:65
void AfterForkChild()
Called in the child process after the fork.
XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
void Lock()
Lock the internal lock.
Definition: XrdClFileStateHandler.hh:584
XRootDStatus ListXAttr(ResponseHandler *handler, uint16_t timeout=0)
URL * pStateRedirect
Definition: XrdClFileStateHandler.hh:759
Status SendOrQueue(const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams)
Send a message to a host or put it in the recovery queue.
@ Recovering
Recovering from an error.
Definition: XrdClFileStateHandler.hh:95
void MonitorClose(const XRootDStatus *status)
Dispatch monitoring information on close.
bool pUseVirtRedirector
Definition: XrdClFileStateHandler.hh:770
XRootDStatus PgReadRetry(uint64_t offset, uint32_t size, size_t pgnb, void *buffer, PgReadHandler *handler, uint16_t timeout=0)
@ Error
Opening has failed.
Definition: XrdClFileStateHandler.hh:94
XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdClAnyObject.hh:26
bool pDoRecoverWrite
Definition: XrdClFileStateHandler.hh:768
URL * pFileUrl
Definition: XrdClFileStateHandler.hh:756
uint64_t pVWBytes
Definition: XrdClFileStateHandler.hh:781
void TimeOutRequests(time_t now)
Declare timeout on requests being recovered.
XRootDStatus Close(ResponseHandler *handler, uint16_t timeout=0)
void FailQueuedMessages(XRootDStatus status)
Fail queued messages.
std::vector< HostInfo > HostList
Definition: XrdClXRootDResponses.hh:1045
static const int kXR_pgRetry
Definition: XProtocol.hh:497
void UnLock()
Unlock the internal lock.
Definition: XrdClFileStateHandler.hh:592
std::set< Message * > pInTheFly
Definition: XrdClFileStateHandler.hh:765
uint64_t pWCount
Definition: XrdClFileStateHandler.hh:785
uint16_t pOpenMode
Definition: XrdClFileStateHandler.hh:762
uint64_t pVRCount
Definition: XrdClFileStateHandler.hh:784
XRootDStatus PgReadImpl(uint64_t offset, uint32_t size, void *buffer, uint16_t flags, ResponseHandler *handler, uint16_t timeout=0)
Object stat info.
Definition: XrdClXRootDResponses.hh:400
std::list< RequestData > RequestList
Definition: XrdClFileStateHandler.hh:631
void ReWriteFileHandle(Message *msg)
Re-write file handle.
Information returned by file open operation.
Definition: XrdClXRootDResponses.hh:853
Procedure execution status.
Definition: XrdClStatus.hh:113
URL representation.
Definition: XrdClURL.hh:31
XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus DelXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
Status RecoverMessage(RequestData rd, bool callbackOnFailure=true)
Binary blob representation.
Definition: XrdClBuffer.hh:34
uint16_t pOpenFlags
Definition: XrdClFileStateHandler.hh:763
XRootDStatus ReadV(uint64_t offset, struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
uint64_t pRCount
Definition: XrdClFileStateHandler.hh:783
XrdSysMutex pMutex
Definition: XrdClFileStateHandler.hh:752
Definition: XrdClAnyObject.hh:33
XRootDStatus Write(uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0)
FilePlugIn *& pPlugin
Definition: XrdClFileStateHandler.hh:803
XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0)
bool pAllowBundledClose
Definition: XrdClFileStateHandler.hh:772
void OnClose(const XRootDStatus *status)
Process the results of the closing operation.
none object for initializing empty Optional
Definition: XrdClOptional.hh:35