61 pEnablePlugIns( enablePlugIns )
71 pEnablePlugIns( enablePlugIns )
108 if( pEnablePlugIns && !pPlugIn )
117 log->
Error(
FileMsg,
"Plug-in factory failed to produce a plug-in "
118 "for %s, continuing without one", url.c_str() );
127 return pPlugIn->
Open( url, flags, mode, handler, timeout );
155 return pPlugIn->
Close( handler, timeout );
182 return pPlugIn->
Stat( force, handler, timeout );
213 return pPlugIn->
Read( offset, size, buffer, handler, timeout );
236 bytesRead = chunkInfo->
length;
252 return pPlugIn->
PgRead( offset, size, buffer, handler, timeout );
263 std::vector<uint32_t> &cksums,
293 return pPlugIn->
Write( offset, size, buffer, handler, timeout );
322 return pPlugIn->
Write( offset, std::move( buffer ), handler, timeout );
354 return pPlugIn->
Write( offset, size, fdoff, fd, handler, timeout );
383 std::vector<uint32_t> &cksums,
388 return pPlugIn->
PgWrite( offset, size, buffer, cksums, handler, timeout );
399 std::vector<uint32_t> &cksums,
418 return pPlugIn->
Sync( handler, timeout );
445 return pPlugIn->
Truncate( size, handler, timeout );
474 return pPlugIn->
VectorRead( chunks, buffer, handler, timeout );
503 return pPlugIn->
VectorWrite( chunks, handler, timeout );
526 const struct iovec *
iov,
532 return pPlugIn->
WriteV( offset,
iov, iovcnt, handler, timeout );
541 const struct iovec *
iov,
615 return pPlugIn->
Fcntl( arg, handler, timeout );
643 return pPlugIn->
Visa( handler, timeout );
679 std::vector<XAttrStatus> &result,
687 std::vector<XAttrStatus> *resp = 0;
689 if( resp ) result.swap( *resp );
712 std::vector<XAttr> &result,
720 std::vector<XAttr> *resp = 0;
722 if( resp ) result.swap( *resp );
745 std::vector<XAttrStatus> &result,
753 std::vector<XAttrStatus> *resp = 0;
755 if( resp ) result.swap( *resp );
784 std::vector<XAttr> *resp = 0;
786 if( resp ) result.swap( *resp );
808 XRootDStatus File::ChkptWrt( uint64_t offset,
811 ResponseHandler *handler,
823 XRootDStatus File::ChkptWrtV( uint64_t offset,
824 const struct iovec *
iov,
826 ResponseHandler *handler,
Binary blob representation.
static PlugInManager * GetPlugInManager()
Get plug-in manager.
static Log * GetLog()
Get default log.
static PostMaster * GetPostMaster()
Get default post master.
An interface for file plug-ins.
virtual XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Open(const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout)
virtual bool IsOpen() const
virtual XRootDStatus Close(ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
virtual bool GetProperty(const std::string &name, std::string &value) const
virtual XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout)
virtual bool SetProperty(const std::string &name, const std::string &value)
virtual XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout)
virtual XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0)
virtual XRootDStatus PgWrite(uint64_t offset, uint32_t nbpgs, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout)
Handle the stateful operations.
static XRootDStatus Stat(std::shared_ptr< FileStateHandler > &self, bool force, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Sync(std::shared_ptr< FileStateHandler > &self, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus DelXAttr(std::shared_ptr< FileStateHandler > &self, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus GetXAttr(std::shared_ptr< FileStateHandler > &self, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus ListXAttr(std::shared_ptr< FileStateHandler > &self, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus SetXAttr(std::shared_ptr< FileStateHandler > &self, const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus ReadV(std::shared_ptr< FileStateHandler > &self, uint64_t offset, struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus ChkptWrt(std::shared_ptr< FileStateHandler > &self, uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Read(std::shared_ptr< FileStateHandler > &self, uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Fcntl(std::shared_ptr< FileStateHandler > &self, const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Truncate(std::shared_ptr< FileStateHandler > &self, uint64_t size, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Close(std::shared_ptr< FileStateHandler > &self, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus ChkptWrtV(std::shared_ptr< FileStateHandler > &self, uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus PgWrite(std::shared_ptr< FileStateHandler > &self, uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus PgRead(std::shared_ptr< FileStateHandler > &self, uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus VectorWrite(std::shared_ptr< FileStateHandler > &self, const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus WriteV(std::shared_ptr< FileStateHandler > &self, uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Visa(std::shared_ptr< FileStateHandler > &self, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Open(std::shared_ptr< FileStateHandler > &self, const std::string &url, uint16_t flags, uint16_t mode, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus VectorRead(std::shared_ptr< FileStateHandler > &self, const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Write(std::shared_ptr< FileStateHandler > &self, uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus Checkpoint(std::shared_ptr< FileStateHandler > &self, kXR_char code, ResponseHandler *handler, uint16_t timeout=0)
static XRootDStatus TryOtherServer(std::shared_ptr< FileStateHandler > &self, uint16_t timeout)
Try other data server.
XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus Close(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus ListXAttr(ResponseHandler *handler, uint16_t timeout=0)
bool IsSecure() const
Check if the file is using an encrypted connection.
bool IsOpen() const
Check if the file is open.
XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus SetXAttr(const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus Open(const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
bool GetProperty(const std::string &name, std::string &value) const
XRootDStatus GetXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus DelXAttr(const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
File(bool enablePlugIns=true)
Constructor.
XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Get access token to a file - async.
XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
virtual ~File()
Destructor.
bool SetProperty(const std::string &name, const std::string &value)
XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus TryOtherServer(uint16_t timeout=0)
XRootDStatus PgWrite(uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus ReadV(uint64_t offset, struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
void Error(uint64_t topic, const char *format,...)
Report an error.
static XrdCl::XRootDStatus WaitForResponse(SyncResponseHandler *handler, Type *&response)
Wait for the response.
static XRootDStatus WaitForStatus(SyncResponseHandler *handler)
Wait and return the status of the query.
virtual FilePlugIn * CreateFile(const std::string &url)=0
Create a file plug-in for the given URL.
PlugInFactory * GetFactory(const std::string url)
Handle an async response.
Synchronize the response.
uint32_t GetSize() const
Get Size.
const uint16_t stError
An error occurred that could potentially be retried.
const uint16_t suAlreadyDone
std::vector< ChunkInfo > ChunkList
List of chunks.
const uint16_t errNotSupported
Describe a data chunk for vector read.
uint32_t length
offset in the file
FileImpl(FilePlugIn *plugin)
FileImpl(bool useVirtRedirector, FilePlugIn *plugin)
std::shared_ptr< FileStateHandler > pStateHandler
Flags
Open flags, may be or'd when appropriate.
std::vector< uint32_t > & GetCksums()
Get the checksums.
uint32_t GetLength() const
Get the data length.
uint16_t code
Error type, or additional hints on what to do.
bool IsOK() const
We're fine.