26 #ifndef __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__ 27 #define __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__ 44 template<
template<
bool>
class Derived,
bool HasHndl,
typename Response,
typename ... Args>
93 template<
bool HasHndl>
129 std::string &path = std::get<PathArg>( this->args ).Get();
131 uint16_t timeout = pipelineTimeout < this->timeout ?
132 pipelineTimeout : this->timeout;
133 return this->filesystem->Locate( path, flags, handler, timeout );
141 template<
bool HasHndl>
143 Resp<LocationInfo>, Arg<std::string>, Arg<OpenFlags::Flags>>
177 std::string &path = std::get<PathArg>( this->
args ).Get();
179 uint16_t
timeout = pipelineTimeout < this->timeout ?
180 pipelineTimeout : this->
timeout;
189 template<
bool HasHndl>
225 std::string &source = std::get<SourceArg>( this->
args ).Get();
226 std::string &dest = std::get<DestArg>( this->
args ).Get();
227 uint16_t
timeout = pipelineTimeout < this->timeout ?
228 pipelineTimeout : this->
timeout;
237 template<
bool HasHndl>
239 Arg<QueryCode::Code>, Arg<Buffer>>
274 const Buffer &buffer( std::get<BufferArg>( this->
args ).Get() );
275 uint16_t
timeout = pipelineTimeout < this->timeout ?
276 pipelineTimeout : this->
timeout;
285 template<
bool HasHndl>
287 Arg<std::string>, Arg<uint64_t>>
321 std::string &path = std::get<PathArg>( this->
args ).Get();
322 uint64_t size = std::get<SizeArg>( this->
args ).Get();
323 uint16_t
timeout = pipelineTimeout < this->timeout ?
324 pipelineTimeout : this->
timeout;
338 template<
bool HasHndl>
372 std::string &path = std::get<PathArg>( this->
args ).Get();
373 uint16_t
timeout = pipelineTimeout < this->timeout ?
374 pipelineTimeout : this->
timeout;
383 template<
bool HasHndl>
385 Arg<std::string>, Arg<MkDirFlags::Flags>, Arg<Access::Mode>>
419 std::string &path = std::get<PathArg>( this->
args ).Get();
422 uint16_t
timeout = pipelineTimeout < this->timeout ?
423 pipelineTimeout : this->
timeout;
432 template<
bool HasHndl>
467 std::string &path = std::get<PathArg>( this->
args ).Get();
468 uint16_t
timeout = pipelineTimeout < this->timeout ?
469 pipelineTimeout : this->
timeout;
478 template<
bool HasHndl>
480 Arg<std::string>, Arg<Access::Mode>>
514 std::string &path = std::get<PathArg>( this->
args ).Get();
516 uint16_t
timeout = pipelineTimeout < this->timeout ?
517 pipelineTimeout : this->
timeout;
526 template<
bool HasHndl>
555 uint16_t
timeout = pipelineTimeout < this->timeout ?
556 pipelineTimeout : this->
timeout;
565 template<
bool HasHndl>
601 std::string &path = std::get<PathArg>( this->
args ).Get();
602 uint16_t
timeout = pipelineTimeout < this->timeout ?
603 pipelineTimeout : this->
timeout;
616 template<
bool HasHndl>
618 Resp<StatInfoVFS>, Arg<std::string>>
652 std::string &path = std::get<PathArg>( this->
args ).Get();
653 uint16_t
timeout = pipelineTimeout < this->timeout ?
654 pipelineTimeout : this->
timeout;
663 template<
bool HasHndl>
693 uint16_t
timeout = pipelineTimeout < this->timeout ?
694 pipelineTimeout : this->
timeout;
703 template<
bool HasHndl>
705 Arg<std::string>, Arg<DirListFlags::Flags>>
739 std::string &path = std::get<PathArg>( this->
args ).Get();
741 uint16_t
timeout = pipelineTimeout < this->timeout ?
742 pipelineTimeout : this->
timeout;
751 template<
bool HasHndl>
787 std::string &info = std::get<InfoArg>( this->
args ).Get();
788 uint16_t
timeout = pipelineTimeout < this->timeout ?
789 pipelineTimeout : this->
timeout;
798 template<
bool HasHndl>
800 Arg<std::vector<std::string>>, Arg<PrepareFlags::Flags>, Arg<uint8_t>>
834 std::vector<std::string> &fileList = std::get<FileListArg>( this->
args ).Get();
836 uint8_t priority = std::get<PriorityArg>( this->
args ).Get();
837 uint16_t
timeout = pipelineTimeout < this->timeout ?
838 pipelineTimeout : this->
timeout;
839 return this->
filesystem->Prepare( fileList, flags, priority,
848 template<
bool HasHndl>
850 Arg<std::string>, Arg<std::string>, Arg<std::string>>
870 return "SetXAttrFsImpl";
884 std::string &path = std::get<PathArg>( this->
args ).Get();
885 std::string &name = std::get<NameArg>( this->
args ).Get();
886 std::string &value = std::get<ValueArg>( this->
args ).Get();
888 std::vector<xattr_t> attrs;
889 attrs.push_back(
xattr_t( name, value ) );
892 uint16_t
timeout = pipelineTimeout < this->timeout ?
893 pipelineTimeout : this->
timeout;
895 if( !st.
IsOK() )
delete h;
908 std::move( value ) );
914 template<
bool HasHndl>
916 Resp<std::vector<XAttrStatus>>, Arg<std::string>, Arg<std::vector<xattr_t>>>
936 return "SetXAttrBulkImpl";
949 std::string &path = std::get<PathArg>( this->
args ).Get();
950 std::vector<xattr_t> &attrs = std::get<AttrsArg>( this->
args ).Get();
951 uint16_t
timeout = pipelineTimeout < this->timeout ?
952 pipelineTimeout : this->
timeout;
962 Arg<std::vector<xattr_t>> attrs )
970 template<
bool HasHndl>
972 Arg<std::string>, Arg<std::string>>
992 return "GetXAttrFsImpl";
1004 std::string &path = std::get<PathArg>( this->
args ).Get();
1005 std::string &name = std::get<NameArg>( this->
args ).Get();
1007 std::vector<std::string> attrs;
1008 attrs.push_back( name );
1011 uint16_t
timeout = pipelineTimeout < this->timeout ?
1012 pipelineTimeout : this->
timeout;
1014 if( !st.
IsOK() )
delete h;
1032 template<
bool HasHndl>
1034 Resp<std::vector<XAttr>>, Arg<std::string>, Arg<std::vector<std::string>>>
1054 return "GetXAttrFsBulkImpl";
1067 std::string &path = std::get<PathArg>( this->
args ).Get();
1068 std::vector<std::string> &attrs = std::get<NamesArg>( this->
args ).Get();
1069 uint16_t
timeout = pipelineTimeout < this->timeout ?
1070 pipelineTimeout : this->
timeout;
1080 Arg<std::vector<std::string>> attrs )
1088 template<
bool HasHndl>
1090 Arg<std::string>, Arg<std::string>>
1110 return "DelXAttrFsImpl";
1124 std::string &path = std::get<PathArg>( this->
args ).Get();
1125 std::string &name = std::get<NameArg>( this->
args ).Get();
1127 std::vector<std::string> attrs;
1128 attrs.push_back( name );
1131 uint16_t
timeout = pipelineTimeout < this->timeout ?
1132 pipelineTimeout : this->
timeout;
1134 if( !st.
IsOK() )
delete h;
1152 template<
bool HasHndl>
1154 Resp<std::vector<XAttrStatus>>, Arg<std::string>, Arg<std::vector<std::string>>>
1174 return "DelXAttrBulkImpl";
1189 std::string &path = std::get<PathArg>( this->
args ).Get();
1190 std::vector<std::string> &attrs = std::get<NamesArg>( this->
args ).Get();
1191 uint16_t
timeout = pipelineTimeout < this->timeout ?
1192 pipelineTimeout : this->
timeout;
1202 Arg<std::vector<std::string>> attrs )
1210 template<
bool HasHndl>
1212 Resp<std::vector<XAttr>>, Arg<std::string>>
1232 return "ListXAttrFsImpl";
1246 std::string &path = std::get<PathArg>( this->
args ).Get();
1247 uint16_t
timeout = pipelineTimeout < this->timeout ?
1248 pipelineTimeout : this->
timeout;
1263 #endif // __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__ Definition: XrdClFileSystemOperations.hh:863
Definition: XrdClFileSystemOperations.hh:156
ProtocolImpl< false > Protocol
Definition: XrdClFileSystemOperations.hh:698
std::string ToString()
Definition: XrdClFileSystemOperations.hh:934
ListXAttrImpl< false > ListXAttr(Ctx< File > file)
Definition: XrdClFileOperations.hh:1138
friend class FileSystemOperation
Definition: XrdClFileSystemOperations.hh:48
SendInfoImpl< false > SendInfo
Definition: XrdClFileSystemOperations.hh:793
Protocol operation (.
Definition: XrdClFileSystemOperations.hh:664
std::string ToString()
Definition: XrdClFileSystemOperations.hh:636
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1052
SetXAttrImpl< false > SetXAttr(Ctx< File > file, Arg< std::string > name, Arg< std::string > value)
Definition: XrdClFileOperations.hh:798
MvImpl< false > Mv
Definition: XrdClFileSystemOperations.hh:232
std::string ToString()
Definition: XrdClFileSystemOperations.hh:451
QueryImpl< false > Query
Definition: XrdClFileSystemOperations.hh:280
std::string ToString()
Definition: XrdClFileSystemOperations.hh:305
Utility class for storing a pointer to operation context.
Definition: XrdClCtx.hh:37
StatVFSImpl< false > StatVFS
Definition: XrdClFileSystemOperations.hh:658
Definition: XrdClFileSystemOperations.hh:985
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:832
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:417
Definition: XrdClFileSystemOperations.hh:1225
GetXAttr operation (.
Definition: XrdClFileSystemOperations.hh:971
std::string ToString()
Definition: XrdClFileSystemOperations.hh:161
Definition: XrdClFileSystemOperations.hh:252
Definition: XrdClFileSystemOperations.hh:929
Definition: XrdClFileSystemOperations.hh:45
Definition: XrdClFileSystemOperations.hh:398
std::string ToString()
Definition: XrdClFileSystemOperations.hh:990
Definition: XrdClFileSystemOperations.hh:493
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:599
Definition: XrdClFileSystemOperations.hh:252
FileSystemOperation(Ctx< FileSystem > fs, Args... args)
Definition: XrdClFileSystemOperations.hh:57
Definition: XrdClFileSystemOperations.hh:108
SetXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:915
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:370
std::string ToString()
Definition: XrdClFileSystemOperations.hh:818
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:1187
Definition: XrdClFileSystemOperations.hh:813
Stat operation (.
Definition: XrdClFileSystemOperations.hh:566
uint16_t timeout
Operation timeout.
Definition: XrdClOperations.hh:746
DelXAttrImpl< false > DelXAttr(Ctx< File > file, Arg< std::string > name)
Definition: XrdClFileOperations.hh:1033
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1108
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:947
LocateImpl< false > Locate
Definition: XrdClFileSystemOperations.hh:136
Definition: XrdClFileSystemOperations.hh:300
bool IsOK() const
We're fine.
Definition: XrdClStatus.hh:122
std::string ToString()
Definition: XrdClFileSystemOperations.hh:868
ListXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1211
std::string ToString()
Definition: XrdClFileSystemOperations.hh:539
Definition: XrdClFileSystemOperations.hh:204
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:785
SetXAttr operation (.
Definition: XrdClFileSystemOperations.hh:849
Flags
Definition: XrdClFileSystem.hh:175
MkDir operation (.
Definition: XrdClFileSystemOperations.hh:384
Definition: XrdClFileSystemOperations.hh:718
Prepare operation (.
Definition: XrdClFileSystemOperations.hh:799
DelXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1153
GetXAttrImpl< false > GetXAttr(Ctx< File > file, Arg< std::string > name)
Definition: XrdClFileOperations.hh:916
std::string ToString()
Definition: XrdClFileSystemOperations.hh:257
TruncateImpl< false > Truncate(Ctx< File > file, Arg< uint64_t > size)
Definition: XrdClFileOperations.hh:508
Definition: XrdClFileSystemOperations.hh:929
Ping operation (.
Definition: XrdClFileSystemOperations.hh:527
Definition: XrdClFileSystemOperations.hh:1047
RmImpl< false > Rm
Definition: XrdClFileSystemOperations.hh:378
Definition: XrdClFileSystemOperations.hh:398
MkDirImpl< false > MkDir
Definition: XrdClFileSystemOperations.hh:427
Definition: XrdClFileSystemOperations.hh:863
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:465
Query operation (.
Definition: XrdClFileSystemOperations.hh:238
Definition: XrdClFileSystemOperations.hh:580
FileSystemOperation(FileSystemOperation< Derived, from, Response, Args... > &&op)
Definition: XrdClFileSystemOperations.hh:70
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:512
std::string ToString()
Definition: XrdClFileSystemOperations.hh:403
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:127
Definition: XrdClFileSystemOperations.hh:813
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1230
Definition: XrdClFileSystemOperations.hh:766
Flags
Definition: XrdClFileSystem.hh:142
Definition: XrdClFileSystemOperations.hh:863
Ctx< FileSystem > filesystem
The file system object itself.
Definition: XrdClFileSystemOperations.hh:87
Truncate operation (.
Definition: XrdClFileSystemOperations.hh:286
Definition: XrdClFileSystemOperations.hh:446
Helper class for unpacking single XAttr from bulk response.
Definition: XrdClOperationHandlers.hh:76
std::tuple< Args... > args
Operation arguments.
Definition: XrdClOperations.hh:741
std::string ToString()
Definition: XrdClFileSystemOperations.hh:356
Definition: XrdClArg.hh:232
Definition: XrdClArg.hh:294
DirListImpl< false > DirList
Definition: XrdClFileSystemOperations.hh:746
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:650
RmDir operation (.
Definition: XrdClFileSystemOperations.hh:433
Request status.
Definition: XrdClXRootDResponses.hh:218
StatVS operation (.
Definition: XrdClFileSystemOperations.hh:617
std::string ToString()
Definition: XrdClFileSystemOperations.hh:585
Definition: XrdClAnyObject.hh:25
StatImpl< false > Stat(Ctx< File > file, Arg< bool > force, uint16_t timeout=0)
Definition: XrdClFileOperations.hh:358
Definition: XrdClFileSystemOperations.hh:156
Definition: XrdClFileSystemOperations.hh:813
Definition: XrdClFileSystemOperations.hh:204
virtual ~FileSystemOperation()
Destructor.
Definition: XrdClFileSystemOperations.hh:78
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:882
Definition: XrdClOperations.hh:58
ChMod operation (.
Definition: XrdClFileSystemOperations.hh:479
DelXAttr operation (.
Definition: XrdClFileSystemOperations.hh:1089
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:1002
std::string ToString()
Definition: XrdClFileSystemOperations.hh:723
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:1065
std::string ToString()
Definition: XrdClFileSystemOperations.hh:498
Mv operation (.
Definition: XrdClFileSystemOperations.hh:190
Helper class for unpacking single XAttrStatus from bulk response.
Definition: XrdClOperationHandlers.hh:41
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:175
Code
XRootD query request codes.
Definition: XrdClFileSystem.hh:52
Definition: XrdClFileSystemOperations.hh:1167
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:553
GetXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1033
Rm operation (.
Definition: XrdClFileSystemOperations.hh:339
Definition: XrdClFileSystemOperations.hh:300
Flags
Definition: XrdClFileSystem.hh:155
std::string ToString()
Definition: XrdClFileSystemOperations.hh:771
Definition: XrdClFileSystemOperations.hh:1167
ChModImpl< false > ChMod
Definition: XrdClFileSystemOperations.hh:521
Mode
Access mode.
Definition: XrdClFileSystem.hh:121
SendInfo operation (.
Definition: XrdClFileSystemOperations.hh:752
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:1122
Definition: XrdClFileSystemOperations.hh:493
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:737
Definition: XrdClFileSystemOperations.hh:351
PingImpl< false > Ping
Definition: XrdClFileSystemOperations.hh:560
DeepLocateImpl< false > DeepLocate
Definition: XrdClFileSystemOperations.hh:184
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1172
std::string ToString()
Definition: XrdClFileSystemOperations.hh:209
Definition: XrdClFileSystemOperations.hh:1103
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:223
std::string ToString()
Definition: XrdClFileSystemOperations.hh:113
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:271
Flags
Open flags, may be or'd when appropriate.
Definition: XrdClFileSystem.hh:75
std::tuple< std::string, std::string > xattr_t
Extended attribute key - value pair.
Definition: XrdClXRootDResponses.hh:289
Definition: XrdClFileSystemOperations.hh:631
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:319
PrepareImpl< false > Prepare
Definition: XrdClFileSystemOperations.hh:843
Locate operation (.
Definition: XrdClFileSystemOperations.hh:94
Definition: XrdClFileSystemOperations.hh:1047
Definition: XrdClFileSystemOperations.hh:718
std::string ToString()
Definition: XrdClFileSystemOperations.hh:677
Definition: XrdClFileSystemOperations.hh:398
std::unique_ptr< PipelineHandler > handler
Operation handler.
Definition: XrdClOperations.hh:304
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:1244
RmDirImpl< false > RmDir
Definition: XrdClFileSystemOperations.hh:473
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Definition: XrdClFileSystemOperations.hh:691
Definition: XrdClFileSystemOperations.hh:985
Binary blob representation.
Definition: XrdClBuffer.hh:33
Definition: XrdClOperations.hh:521
Definition: XrdClFileSystemOperations.hh:1103
DirList operation (.
Definition: XrdClFileSystemOperations.hh:704
DeepLocate operation (.
Definition: XrdClFileSystemOperations.hh:142