25 #ifndef __XRD_CL_FILE_STATE_HANDLER_HH__ 26 #define __XRD_CL_FILE_STATE_HANDLER_HH__ 43 class ResponseHandlerHolder;
98 uint16_t timeout = 0 );
109 uint16_t timeout = 0 );
124 uint16_t timeout = 0 );
147 uint16_t timeout = 0 );
164 uint16_t timeout = 0 );
180 uint16_t timeout = 0 );
201 uint16_t timeout = 0 );
213 uint16_t timeout = 0 );
226 uint16_t timeout = 0 );
241 uint16_t timeout = 0 );
254 uint16_t timeout = 0 );
268 const struct iovec *iov,
271 uint16_t timeout = 0 );
287 uint16_t timeout = 0 );
300 uint16_t timeout = 0 );
316 uint16_t timeout = 0 );
332 uint16_t timeout = 0 );
348 uint16_t timeout = 0 );
362 uint16_t timeout = 0 );
410 bool SetProperty(
const std::string &name,
const std::string &value );
417 bool GetProperty(
const std::string &name, std::string &value )
const;
438 void Tick( time_t now );
477 const std::vector<T> &attrs,
479 uint16_t timeout = 0 );
623 #endif // __XRD_CL_FILE_STATE_HANDLER_HH__ uint64_t pWBytes
Definition: XrdClFileStateHandler.hh:601
unsigned char kXR_char
Definition: XPtypes.hh:65
bool GetProperty(const std::string &name, std::string &value) const
void AfterForkChild()
Called in the child process after the fork.
Definition: XrdClAnyObject.hh:32
Status XAttrOperationImpl(kXR_char subcode, kXR_char options, const std::vector< T > &attrs, ResponseHandler *handler, uint16_t timeout=0)
void OnClose(const XRootDStatus *status)
Process the results of the closing operation.
void Lock()
Lock the internal lock.
Definition: XrdClFileStateHandler.hh:422
XRootDStatus SetXAttr(const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0)
void UnLock()
Unlock the internal lock.
Definition: XrdClFileStateHandler.hh:430
Definition: XrdClMessageUtils.hh:130
uint64_t pRBytes
Definition: XrdClFileStateHandler.hh:599
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition: XrdClXRootDResponses.hh:904
Status RecoverMessage(RequestData rd, bool callbackOnFailure=true)
uint64_t pSessionId
Definition: XrdClFileStateHandler.hh:589
The message representation used throughout the system.
Definition: XrdClMessage.hh:29
uint64_t pVWBytes
Definition: XrdClFileStateHandler.hh:602
Object stat info.
Definition: XrdClXRootDResponses.hh:395
void TimeOutRequests(time_t now)
Declare timeout on requests being recovered.
void OnOpen(const XRootDStatus *status, const OpenInfo *openInfo, const HostList *hostList)
Process the results of the opening operation.
uint64_t pWCount
Definition: XrdClFileStateHandler.hh:606
RequestData()
Definition: XrdClFileStateHandler.hh:456
XRootDStatus SendClose(uint16_t timeout)
void FailQueuedMessages(XRootDStatus status)
Fail queued messages.
The file is closed.
Definition: XrdClFileStateHandler.hh:57
Definition: XrdClOptional.hh:43
void OnStateRedirection(const std::string &redirectUrl, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams)
Handle stateful redirect.
Message * request
Definition: XrdClFileStateHandler.hh:460
XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
uint64_t pVSegs
Definition: XrdClFileStateHandler.hh:603
void OnStateError(XRootDStatus *status, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams)
Handle an error while sending a stateful message.
bool pDoRecoverWrite
Definition: XrdClFileStateHandler.hh:591
XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
ResponseHandler * handler
Definition: XrdClFileStateHandler.hh:461
void Tick(time_t now)
Tick.
Procedure execution status.
Definition: XrdClStatus.hh:110
FileStateHandler()
Constructor.
void MonitorClose(const XRootDStatus *status)
Dispatch monitoring information on close.
Opening is in progress.
Definition: XrdClFileStateHandler.hh:61
Information returned by file open operation.
Definition: XrdClXRootDResponses.hh:833
void ResetMonitoringVars()
Reset monitoring vars.
Definition: XrdClFileStateHandler.hh:546
void ReWriteFileHandle(Message *msg)
Re-write file handle.
XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdSysPthread.hh:165
XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout=0)
bool pDoRecoverRead
Definition: XrdClFileStateHandler.hh:590
LocalFileHandler * pLFileHandler
Definition: XrdClFileStateHandler.hh:619
std::list< RequestData > RequestList
Definition: XrdClFileStateHandler.hh:464
std::set< Message * > pInTheFly
Definition: XrdClFileStateHandler.hh:588
Closing operation is in progress.
Definition: XrdClFileStateHandler.hh:62
timeval pOpenTime
Definition: XrdClFileStateHandler.hh:598
std::vector< HostInfo > HostList
Definition: XrdClXRootDResponses.hh:969
XRootDStatus ReOpenFileAtServer(const URL &url, uint16_t timeout)
Re-open the current file at a given server.
uint64_t pRCount
Definition: XrdClFileStateHandler.hh:604
MessageSendParams params
Definition: XrdClFileStateHandler.hh:462
XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
uint16_t pOpenFlags
Definition: XrdClFileStateHandler.hh:586
XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0)
Opening has failed.
Definition: XrdClFileStateHandler.hh:59
Opening has succeeded.
Definition: XrdClFileStateHandler.hh:58
bool IsOpen() const
Check if the file is open.
Request status.
Definition: XrdClXRootDResponses.hh:214
Definition: XrdClAnyObject.hh:25
XRootDStatus GetXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
FileStatus
State of the file.
Definition: XrdClFileStateHandler.hh:55
bool pUseVirtRedirector
Definition: XrdClFileStateHandler.hh:593
ResponseHandlerHolder * pReOpenHandler
Definition: XrdClFileStateHandler.hh:614
bool IsRecoverable(const XRootDStatus &stataus) const
Check if the stateful error is recoverable.
Definition: XrdClFileStateHandler.hh:454
Recovering from an error.
Definition: XrdClFileStateHandler.hh:60
RequestData(Message *r, ResponseHandler *h, const MessageSendParams &p)
Definition: XrdClFileStateHandler.hh:457
XRootDStatus DelXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
FileStatus pFileState
Definition: XrdClFileStateHandler.hh:577
XRootDStatus pCloseReason
Definition: XrdClFileStateHandler.hh:608
bool SetProperty(const std::string &name, const std::string &value)
uint64_t pVWCount
Definition: XrdClFileStateHandler.hh:607
RequestList pToBeRecovered
Definition: XrdClFileStateHandler.hh:587
Handle an async response.
Definition: XrdClXRootDResponses.hh:974
void OnStateResponse(XRootDStatus *status, Message *message, AnyObject *response, HostList *hostList)
Handle stateful response.
void Lock()
Definition: XrdSysPthread.hh:220
Handle the stateful operations.
Definition: XrdClFileStateHandler.hh:49
Definition: XrdClLocalFileHandler.hh:32
XRootDStatus Open(const std::string &url, uint16_t flags, uint16_t mode, ResponseHandler *handler, uint16_t timeout=0)
~FileStateHandler()
Destructor.
XRootDStatus ListXAttr(ResponseHandler *handler, uint16_t timeout=0)
URL representation.
Definition: XrdClURL.hh:30
Status SendOrQueue(const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams)
Send a message to a host or put it in the recovery queue.
URL * pFileUrl
Definition: XrdClFileStateHandler.hh:580
XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0)
bool IsReadOnly() const
Check if the file is open for read only.
bool pFollowRedirects
Definition: XrdClFileStateHandler.hh:592
XRootDStatus Close(ResponseHandler *handler, uint16_t timeout=0)
uint64_t pVRCount
Definition: XrdClFileStateHandler.hh:605
XRootDStatus pStatus
Definition: XrdClFileStateHandler.hh:578
uint8_t * pFileHandle
Definition: XrdClFileStateHandler.hh:584
URL * pStateRedirect
Definition: XrdClFileStateHandler.hh:583
void FailMessage(RequestData rd, XRootDStatus status)
Fail a message.
void ReSendQueuedMessages()
Re-send queued messages.
URL * pDataServer
Definition: XrdClFileStateHandler.hh:581
uint16_t pOpenMode
Definition: XrdClFileStateHandler.hh:585
XRootDStatus IssueRequest(const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams)
void UnLock()
Definition: XrdSysPthread.hh:222
StatInfo * pStatInfo
Definition: XrdClFileStateHandler.hh:579
XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0)
uint64_t pVRBytes
Definition: XrdClFileStateHandler.hh:600
XrdSysMutex pMutex
Definition: XrdClFileStateHandler.hh:576
URL * pLoadBalancer
Definition: XrdClFileStateHandler.hh:582
Binary blob representation.
Definition: XrdClBuffer.hh:33
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0)
Status RunRecovery()
Run the recovery procedure if appropriate.