81 friend class ::PgReadHandler;
82 friend class ::PgReadRetryHandler;
83 friend class ::PgReadSubstitutionHandler;
84 friend class ::OpenHandler;
130 const std::string &url,
134 uint16_t timeout = 0 );
146 uint16_t timeout = 0 );
162 uint16_t timeout = 0 );
186 uint16_t timeout = 0 );
207 uint16_t timeout = 0 );
221 static XRootDStatus PgReadRetry( std::shared_ptr<FileStateHandler> &self,
226 PgReadHandler *handler,
227 uint16_t timeout = 0 );
250 uint16_t timeout = 0 );
268 uint16_t timeout = 0 );
285 uint16_t timeout = 0 );
307 uint16_t timeout = 0 );
325 std::vector<uint32_t> &cksums,
327 uint16_t timeout = 0 );
340 static XRootDStatus PgWriteRetry( std::shared_ptr<FileStateHandler> &self,
346 uint16_t timeout = 0 );
365 std::vector<uint32_t> &cksums,
368 uint16_t timeout = 0 );
380 uint16_t timeout = 0 );
394 uint16_t timeout = 0 );
410 uint16_t timeout = 0 );
424 uint16_t timeout = 0 );
439 const struct iovec *
iov,
442 uint16_t timeout = 0 );
455 static XRootDStatus ReadV( std::shared_ptr<FileStateHandler> &self,
460 uint16_t timeout = 0 );
477 uint16_t timeout = 0 );
491 uint16_t timeout = 0 );
506 const std::vector<xattr_t> &attrs,
508 uint16_t timeout = 0 );
523 const std::vector<std::string> &attrs,
525 uint16_t timeout = 0 );
540 const std::vector<std::string> &attrs,
542 uint16_t timeout = 0 );
557 uint16_t timeout = 0 );
573 uint16_t timeout = 0 );
591 uint16_t timeout = 0 );
606 const struct iovec *
iov,
609 uint16_t timeout = 0 );
626 static void OnStateError( std::shared_ptr<FileStateHandler> &self,
635 static void OnStateRedirection( std::shared_ptr<FileStateHandler> &self,
636 const std::string &redirectUrl,
644 static void OnStateResponse( std::shared_ptr<FileStateHandler> &self,
660 return pIsChannelEncrypted;
668 bool SetProperty(
const std::string &name,
const std::string &
value );
675 bool GetProperty(
const std::string &name, std::string &
value )
const;
696 void Tick( time_t now );
701 void TimeOutRequests( time_t now );
706 void AfterForkChild();
711 static XRootDStatus TryOtherServer( std::shared_ptr<FileStateHandler> &self,
720 RequestData(): request(0), handler(0) {}
721 RequestData( Message *r, ResponseHandler *h,
722 const MessageSendParams &p ):
723 request(r), handler(h), params(p) {}
725 ResponseHandler *handler;
726 MessageSendParams params;
728 typedef std::list<RequestData> RequestList;
739 static Status XAttrOperationImpl( std::shared_ptr<FileStateHandler> &self,
742 const std::vector<T> &attrs,
744 uint16_t timeout = 0 );
749 static Status SendOrQueue( std::shared_ptr<FileStateHandler> &self,
758 bool IsRecoverable(
const XRootDStatus &stataus )
const;
767 static Status RecoverMessage( std::shared_ptr<FileStateHandler> &self,
769 bool callbackOnFailure =
true );
774 static Status RunRecovery( std::shared_ptr<FileStateHandler> &self );
779 static XRootDStatus SendClose( std::shared_ptr<FileStateHandler> &self,
785 bool IsReadOnly()
const;
790 static XRootDStatus ReOpenFileAtServer( std::shared_ptr<FileStateHandler> &self,
797 void FailMessage( RequestData rd,
XRootDStatus status );
807 void ReSendQueuedMessages();
812 void ReWriteFileHandle(
Message *msg );
817 void ResetMonitoringVars()
819 pOpenTime.tv_sec = 0; pOpenTime.tv_usec = 0;
850 static XRootDStatus WriteKernelBuffer( std::shared_ptr<FileStateHandler> &self,
853 std::unique_ptr<XrdSys::KernelBuffer> kbuff,
857 mutable XrdSysMutex pMutex;
858 FileStatus pFileState;
865 URL *pWrtRecoveryRedir;
866 uint8_t *pFileHandle;
869 RequestList pToBeRecovered;
870 std::set<Message*> pInTheFly;
873 bool pDoRecoverWrite;
874 bool pFollowRedirects;
875 bool pUseVirtRedirector;
876 bool pIsChannelEncrypted;
877 bool pAllowBundledClose;