Go to the documentation of this file.
26 #ifndef __XRD_CL_FILE_OPERATIONS_HH__
27 #define __XRD_CL_FILE_OPERATIONS_HH__
43 template<
template<
bool>
class Derived,
bool HasHndl,
typename Response,
typename ... Arguments>
47 template<
template<
bool>
class, bool,
typename,
typename ...>
friend class FileOperation;
103 template<
bool HasHndl>
156 Arg<
Access::Mode>>( f, std::move( url ), std::move( flags ), std::move( mode ) )
166 Arg<
Access::Mode>>( &f, std::move( url ), std::move( flags ), std::move( mode ) )
196 template<
typename Hdlr>
204 ExResp factory( *this->file );
205 return this->StreamImpl( factory.
Create( hdlr ), own );
229 std::string url = std::get<UrlArg>( this->args ).Get();
231 Access::Mode mode = std::get<ModeArg>( this->args ).Get();
232 return this->file->Open( url, flags, mode, this->handler.get() );
238 catch(
const std::exception& ex )
249 template<
bool HasHndl>
251 Arg<uint64_t>, Arg<uint32_t>, Arg<void*>>
287 uint64_t offset = std::get<OffsetArg>( this->
args ).Get();
288 uint32_t size = std::get<SizeArg>( this->
args ).Get();
289 void *buffer = std::get<BufferArg>( this->
args ).Get();
296 catch(
const std::exception& ex )
307 template<
bool HasHndl>
344 template<
bool HasHndl>
380 bool force = std::get<ForceArg>( this->
args ).Get();
387 catch(
const std::exception& ex )
415 template<
bool HasHndl>
417 Arg<uint32_t>, Arg<void*>>
453 uint64_t offset = std::get<OffsetArg>( this->
args ).Get();
454 uint32_t size = std::get<SizeArg>( this->
args ).Get();
455 void *buffer = std::get<BufferArg>( this->
args ).Get();
462 catch(
const std::exception& ex )
473 template<
bool HasHndl>
510 template<
bool HasHndl>
546 uint64_t size = std::get<SizeArg>( this->
args ).Get();
553 catch(
const std::exception& ex )
581 template<
bool HasHndl>
583 Resp<VectorReadInfo>, Arg<ChunkList>, Arg<void*>>
620 void *buffer = std::get<BufferArg>( this->
args ).Get();
627 catch(
const std::exception& ex )
638 template<
bool HasHndl>
659 return "VectorWrite";
675 const ChunkList chunks( std::get<ChunksArg>( this->
args ).Get() );
682 catch(
const std::exception& ex )
693 template<
bool HasHndl>
695 Arg<struct iovec*>, Arg<int>>
731 uint64_t offset = std::get<OffsetArg>( this->
args ).Get();
732 const struct iovec *iov = std::get<IovArg>( this->
args ).Get();
733 int iovcnt = std::get<IovcntArg>( this->
args ).Get();
740 catch(
const std::exception& ex )
751 template<
bool HasHndl>
787 Buffer arg( std::get<BufferArg>( this->
args ).Get() );
794 catch(
const std::exception& ex )
805 template<
bool HasHndl>
840 #endif // __XRD_CL_FILE_OPERATIONS_HH__
Definition: XrdClOperationHandlers.hh:553
Write operation (.
Definition: XrdClFileOperations.hh:416
Handle an async response.
Definition: XrdClXRootDResponses.hh:854
const XRootDStatus & GetError() const
Definition: XrdClOperationHandlers.hh:351
WriteVImpl< false > WriteV
Definition: XrdClFileOperations.hh:746
Definition: XrdClFileOperations.hh:430
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:449
std::string ToString()
Definition: XrdClFileOperations.hh:769
OpenImpl< false > Open
Definition: XrdClFileOperations.hh:244
CloseImpl< false > Close
Definition: XrdClFileOperations.hh:339
Access mode.
Definition: XrdClFileSystem.hh:115
Definition: XrdClFileOperations.hh:114
ResponseHandler * Create(std::function< void(XRootDStatus &, StatInfo &)> func)
Definition: XrdClFileOperations.hh:131
std::string ToString()
Definition: XrdClFileOperations.hh:435
File * file
The file object itself.
Definition: XrdClFileOperations.hh:97
Definition: XrdClFileOperations.hh:523
virtual ~FileOperation()
Destructor.
Definition: XrdClFileOperations.hh:87
Definition: XrdClFileOperations.hh:264
Definition: XrdClFileOperations.hh:708
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:283
std::string ToString()
Definition: XrdClFileOperations.hh:528
OpenImpl< true > operator>>(Hdlr &&hdlr)
Definition: XrdClFileOperations.hh:197
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:225
Open operation (.
Definition: XrdClFileOperations.hh:104
VectorRead operation (.
Definition: XrdClFileOperations.hh:582
Stat operation (.
Definition: XrdClFileOperations.hh:345
Definition: XrdClFileOperations.hh:652
TruncateImpl< false > Truncate(File *file, Arg< uint64_t > size)
Definition: XrdClFileOperations.hh:564
Definition: XrdClArg.hh:285
std::unique_ptr< PipelineHandler > handler
Operation handler.
Definition: XrdClOperations.hh:280
WriteV operation (.
Definition: XrdClFileOperations.hh:694
A file.
Definition: XrdClFile.hh:44
Pipeline exception, wrapps an XRootDStatus.
Definition: XrdClOperationHandlers.hh:311
Open flags, may be or'd when appropriate.
Definition: XrdClFileSystem.hh:71
Definition: XrdClFileOperations.hh:764
friend class FileOperation
Definition: XrdClFileOperations.hh:47
OpenImpl(File *f, Arg< std::string > url, Arg< OpenFlags::Flags > flags, Arg< Access::Mode > mode=Access::None)
Constructor (.
Definition: XrdClFileOperations.hh:153
std::string ToString()
Definition: XrdClFileOperations.hh:269
std::string ToString()
Definition: XrdClFileOperations.hh:818
Definition: XrdClFileOperations.hh:357
Close operation (.
Definition: XrdClFileOperations.hh:308
FileOperation(File *f, Arguments... args)
Definition: XrdClFileOperations.hh:56
Mode
Access mode.
Definition: XrdClFileSystem.hh:120
std::tuple< Args... > args
Operation arguments.
Definition: XrdClOperations.hh:686
Truncate operation (.
Definition: XrdClFileOperations.hh:511
Definition: XrdClOperations.hh:467
std::string ToString()
Definition: XrdClFileOperations.hh:211
std::string ToString()
Definition: XrdClFileOperations.hh:320
ExResp(XrdCl::File &file)
Definition: XrdClFileOperations.hh:121
XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Visa operation (.
Definition: XrdClFileOperations.hh:806
#define open
Definition: XrdPosix.hh:71
Request status.
Definition: XrdClXRootDResponses.hh:212
FcntlImpl< false > Fcntl
Definition: XrdClFileOperations.hh:800
OpenImpl(File &f, Arg< std::string > url, Arg< OpenFlags::Flags > flags, Arg< Access::Mode > mode=Access::None)
Constructor (.
Definition: XrdClFileOperations.hh:163
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition: XrdClXRootDResponses.hh:784
OpenImpl(OpenImpl< from > &&open)
Definition: XrdClFileOperations.hh:178
std::string ToString()
Definition: XrdClFileOperations.hh:486
Definition: XrdClFileOperations.hh:708
Definition: XrdClFileOperations.hh:596
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:334
ReadImpl< false > Read
Definition: XrdClFileOperations.hh:302
Read operation (.
Definition: XrdClFileOperations.hh:250
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:376
FileOperation(File &f, Arguments... args)
Definition: XrdClFileOperations.hh:66
VectorWrite operation (.
Definition: XrdClFileOperations.hh:639
XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:500
XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus Write(uint64_t offset, uint32_t size, const 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 Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
std::string ToString()
Definition: XrdClFileOperations.hh:601
VisaImpl< false > Visa
Definition: XrdClFileOperations.hh:837
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:727
Definition: XrdClFileOperations.hh:44
Definition: XrdClFileOperations.hh:596
std::string ToString()
Definition: XrdClFileOperations.hh:362
Definition: XrdClFileOperations.hh:188
StatImpl< false > Stat(File *file, Arg< bool > force)
Definition: XrdClFileOperations.hh:398
XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:783
VectorReadImpl< false > VectorRead
Definition: XrdClFileOperations.hh:633
Lambda wrapper.
Definition: XrdClOperationHandlers.hh:258
WriteImpl< false > Write
Definition: XrdClFileOperations.hh:468
XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XrdCl::File & file
The underlying XrdCl::File object.
Definition: XrdClFileOperations.hh:145
Definition: XrdClAnyObject.hh:25
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:671
Fcntl operation (.
Definition: XrdClFileOperations.hh:752
FileOperation(FileOperation< Derived, from, Response, Arguments... > &&op)
Definition: XrdClFileOperations.hh:78
std::string ToString()
Definition: XrdClFileOperations.hh:657
VectorWriteImpl< false > VectorWrite
Definition: XrdClFileOperations.hh:688
XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdClFileOperations.hh:430
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFileSystem.hh:122
Definition: XrdClArg.hh:223
const uint16_t stError
An error occurred that could potentially be retried.
Definition: XrdClStatus.hh:32
Object stat info.
Definition: XrdClXRootDResponses.hh:332
Sync operation (.
Definition: XrdClFileOperations.hh:474
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:615
Definition: XrdClFileOperations.hh:264
Binary blob representation.
Definition: XrdClBuffer.hh:33
SyncImpl< false > Sync
Definition: XrdClFileOperations.hh:505
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:542
XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFileOperations.hh:264
XRootDStatus RunImpl()
Definition: XrdClFileOperations.hh:832
Flags
Open flags, may be or'd when appropriate.
Definition: XrdClFileSystem.hh:76
Definition: XrdClOperationHandlers.hh:40
std::string ToString()
Definition: XrdClFileOperations.hh:713
Definition: XrdClFileOperations.hh:708
Definition: XrdClFileOperations.hh:430