Go to the documentation of this file.
26 #ifndef __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__
27 #define __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__
43 template<
template<
bool>
class Derived,
bool HasHndl,
typename Response,
typename ... Args>
102 template<
bool HasHndl>
140 std::string path = std::get<PathArg>( this->args ).Get();
142 return this->filesystem->Locate( path, flags, this->handler.get() );
148 catch(
const std::exception& ex )
159 template<
bool HasHndl>
161 Resp<LocationInfo>, Arg<std::string>, Arg<OpenFlags::Flags>>
197 std::string path = std::get<PathArg>( this->
args ).Get();
205 catch(
const std::exception& ex )
216 template<
bool HasHndl>
254 std::string source = std::get<SourceArg>( this->
args ).Get();
255 std::string dest = std::get<DestArg>( this->
args ).Get();
262 catch(
const std::exception& ex )
273 template<
bool HasHndl>
275 Arg<QueryCode::Code>, Arg<Buffer>>
312 const Buffer buffer( std::get<BufferArg>( this->
args ).Get() );
319 catch(
const std::exception& ex )
330 template<
bool HasHndl>
332 Arg<std::string>, Arg<uint64_t>>
368 std::string path = std::get<PathArg>( this->
args ).Get();
369 uint64_t size = std::get<SizeArg>( this->
args ).Get();
376 catch(
const std::exception& ex )
396 template<
bool HasHndl>
432 std::string path = std::get<PathArg>( this->
args ).Get();
439 catch(
const std::exception& ex )
450 template<
bool HasHndl>
452 Arg<std::string>, Arg<MkDirFlags::Flags>, Arg<Access::Mode>>
488 std::string path = std::get<PathArg>( this->
args ).Get();
497 catch(
const std::exception& ex )
508 template<
bool HasHndl>
545 std::string path = std::get<PathArg>( this->
args ).Get();
552 catch(
const std::exception& ex )
563 template<
bool HasHndl>
565 Arg<std::string>, Arg<Access::Mode>>
601 std::string path = std::get<PathArg>( this->
args ).Get();
609 catch(
const std::exception& ex )
620 template<
bool HasHndl>
657 template<
bool HasHndl>
695 std::string path = std::get<PathArg>( this->
args ).Get();
702 catch(
const std::exception& ex )
722 template<
bool HasHndl>
724 Resp<StatInfoVFS>, Arg<std::string>>
760 std::string path = std::get<PathArg>( this->
args ).Get();
767 catch(
const std::exception& ex )
778 template<
bool HasHndl>
816 template<
bool HasHndl>
818 Arg<std::string>, Arg<DirListFlags::Flags>>
854 std::string path = std::get<PathArg>( this->
args ).Get();
862 catch(
const std::exception& ex )
873 template<
bool HasHndl>
911 std::string info = std::get<InfoArg>( this->
args ).Get();
918 catch(
const std::exception& ex )
929 template<
bool HasHndl>
931 Arg<std::vector<std::string>>, Arg<PrepareFlags::Flags>, Arg<uint8_t>>
967 std::vector<std::string> fileList = std::get<FileListArg>( this->
args ).Get();
969 uint8_t priority = std::get<PriorityArg>( this->
args ).Get();
977 catch(
const std::exception& ex )
988 template<
bool HasHndl>
990 Arg<std::string>, Arg<std::string>, Arg<std::string>>
1010 return "SetXAttrFsImpl";
1026 std::string path = std::get<PathArg>( this->
args ).Get();
1027 std::string name = std::get<NameArg>( this->
args ).Get();
1028 std::string value = std::get<ValueArg>( this->
args ).Get();
1030 std::vector<xattr_t> attrs;
1031 attrs.push_back(
xattr_t( std::move( name ), std::move( value ) ) );
1042 catch(
const std::exception& ex )
1057 std::move( value ) );
1068 std::move( value ) );
1074 template<
bool HasHndl>
1076 Resp<std::vector<XAttrStatus>>, Arg<std::string>, Arg<std::vector<xattr_t>>>
1096 return "SetXAttrBulkImpl";
1111 std::string path = std::get<PathArg>( this->
args ).Get();
1112 std::vector<xattr_t> attrs = std::get<AttrsArg>( this->
args ).Get();
1119 catch(
const std::exception& ex )
1131 Arg<std::vector<xattr_t>> attrs )
1141 Arg<std::vector<xattr_t>> attrs )
1149 template<
bool HasHndl>
1151 Arg<std::string>, Arg<std::string>>
1171 return "GetXAttrFsImpl";
1185 std::string path = std::get<PathArg>( this->
args ).Get();
1186 std::string name = std::get<NameArg>( this->
args ).Get();
1188 std::vector<std::string> attrs;
1189 attrs.push_back( std::move( name ) );
1200 catch(
const std::exception& ex )
1230 template<
bool HasHndl>
1232 Resp<std::vector<XAttr>>, Arg<std::string>, Arg<std::vector<std::string>>>
1252 return "GetXAttrFsBulkImpl";
1267 std::string path = std::get<PathArg>( this->
args ).Get();
1268 std::vector<std::string> attrs = std::get<NamesArg>( this->
args ).Get();
1275 catch(
const std::exception& ex )
1287 Arg<std::vector<std::string>> attrs )
1297 Arg<std::vector<std::string>> attrs )
1305 template<
bool HasHndl>
1307 Arg<std::string>, Arg<std::string>>
1327 return "DelXAttrFsImpl";
1343 std::string path = std::get<PathArg>( this->
args ).Get();
1344 std::string name = std::get<NameArg>( this->
args ).Get();
1346 std::vector<std::string> attrs;
1347 attrs.push_back( std::move( name ) );
1358 catch(
const std::exception& ex )
1388 template<
bool HasHndl>
1390 Resp<std::vector<XAttrStatus>>, Arg<std::string>, Arg<std::vector<std::string>>>
1410 return "DelXAttrBulkImpl";
1427 std::string path = std::get<PathArg>( this->
args ).Get();
1428 std::vector<std::string> attrs = std::get<NamesArg>( this->
args ).Get();
1435 catch(
const std::exception& ex )
1447 Arg<std::vector<std::string>> attrs )
1457 Arg<std::vector<std::string>> attrs )
1465 template<
bool HasHndl>
1467 Resp<std::vector<XAttr>>, Arg<std::string>>
1487 return "ListXAttrFsImpl";
1503 std::string path = std::get<PathArg>( this->
args ).Get();
1510 catch(
const std::exception& ex )
1536 #endif // __XRD_CL_FILE_SYSTEM_OPERATIONS_HH__
Locate operation (.
Definition: XrdClFileSystemOperations.hh:105
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1022
RmImpl< false > Rm
Definition: XrdClFileSystemOperations.hh:445
RmDirImpl< false > RmDir
Definition: XrdClFileSystemOperations.hh:558
SendInfoImpl< false > SendInfo
Definition: XrdClFileSystemOperations.hh:924
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1499
const XRootDStatus & GetError() const
Definition: XrdClOperationHandlers.hh:399
@ PathArg
Definition: XrdClFileSystemOperations.hh:1320
XRootDStatus ListXAttr(const std::string &path, ResponseHandler *handler, uint16_t timeout=0)
@ ModeArg
Definition: XrdClFileSystemOperations.hh:578
XRootDStatus Mv(const std::string &source, const std::string &dest, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
StatVS operation (.
Definition: XrdClFileSystemOperations.hh:725
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1008
Protocol operation (.
Definition: XrdClFileSystemOperations.hh:781
LocateImpl< false > Locate
Definition: XrdClFileSystemOperations.hh:154
friend class FileSystemOperation
Definition: XrdClFileSystemOperations.hh:47
DelXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1391
XRootDStatus RmDir(const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
MkDirImpl< false > MkDir
Definition: XrdClFileSystemOperations.hh:503
GetXAttrImpl< false > GetXAttr(File *file, Arg< std::string > name)
Definition: XrdClFileOperations.hh:1055
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1181
std::string ToString()
Definition: XrdClFileSystemOperations.hh:949
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:597
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:907
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1094
XRootDStatus DelXAttr(const std::string &path, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
@ InfoArg
Definition: XrdClFileSystemOperations.hh:888
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:193
Flags
Definition: XrdClFileSystem.hh:143
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1107
DelXAttr operation (.
Definition: XrdClFileSystemOperations.hh:1308
XRootDStatus DeepLocate(const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
@ ValueArg
Definition: XrdClFileSystemOperations.hh:1003
@ PathArg
Definition: XrdClFileSystemOperations.hh:831
@ FlagsArg
Definition: XrdClFileSystemOperations.hh:465
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1408
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:541
@ PathArg
Definition: XrdClFileSystemOperations.hh:1003
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1423
std::string ToString()
Definition: XrdClFileSystemOperations.hh:350
Stat operation (.
Definition: XrdClFileSystemOperations.hh:660
TruncateImpl< false > Truncate(File *file, Arg< uint64_t > size)
Definition: XrdClFileOperations.hh:559
std::string ToString()
Definition: XrdClFileSystemOperations.hh:179
Definition: XrdClArg.hh:286
std::unique_ptr< PipelineHandler > handler
Operation handler.
Definition: XrdClOperations.hh:288
FileSystemOperation(FileSystemOperation< Derived, from, Response, Args... > &&op)
Definition: XrdClFileSystemOperations.hh:79
@ FlagsArg
Definition: XrdClFileSystemOperations.hh:831
Pipeline exception, wrapps an XRootDStatus.
Definition: XrdClOperationHandlers.hh:360
MvImpl< false > Mv
Definition: XrdClFileSystemOperations.hh:268
std::string ToString()
Definition: XrdClFileSystemOperations.hh:236
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:963
@ PriorityArg
Definition: XrdClFileSystemOperations.hh:944
FileSystemOperation(FileSystem *fs, Args... args)
Definition: XrdClFileSystemOperations.hh:56
XRootDStatus Ping(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:250
Mode
Access mode.
Definition: XrdClFileSystem.hh:122
std::tuple< Args... > args
Operation arguments.
Definition: XrdClOperations.hh:698
Definition: XrdClOperations.hh:476
@ PathArg
Definition: XrdClFileSystemOperations.hh:1403
PingImpl< false > Ping
Definition: XrdClFileSystemOperations.hh:652
@ PathArg
Definition: XrdClFileSystemOperations.hh:409
@ QueryCodeArg
Definition: XrdClFileSystemOperations.hh:288
@ PathArg
Definition: XrdClFileSystemOperations.hh:465
XRootDStatus MkDir(const std::string &path, MkDirFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
@ NameArg
Definition: XrdClFileSystemOperations.hh:1003
@ PathArg
Definition: XrdClFileSystemOperations.hh:737
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1325
Code
XRootD query request codes.
Definition: XrdClFileSystem.hh:53
Request status.
Definition: XrdClXRootDResponses.hh:215
XRootDStatus DirList(const std::string &path, DirListFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
std::string ToString()
Definition: XrdClFileSystemOperations.hh:293
XRootDStatus SendInfo(const std::string &info, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
MkDir operation (.
Definition: XrdClFileSystemOperations.hh:453
DirListImpl< false > DirList
Definition: XrdClFileSystemOperations.hh:868
std::string ToString()
Definition: XrdClFileSystemOperations.hh:633
@ NameArg
Definition: XrdClFileSystemOperations.hh:1320
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:691
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:647
@ NamesArg
Definition: XrdClFileSystemOperations.hh:1403
@ NamesArg
Definition: XrdClFileSystemOperations.hh:1245
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1339
GetXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1233
ListXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1468
XRootDStatus Protocol(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1485
SetXAttrImpl< false > SetXAttr(File *file, Arg< std::string > name, Arg< std::string > value)
Definition: XrdClFileOperations.hh:901
@ AttrsArg
Definition: XrdClFileSystemOperations.hh:1089
Query operation (.
Definition: XrdClFileSystemOperations.hh:276
XRootDStatus Rm(const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:850
DeepLocateImpl< false > DeepLocate
Definition: XrdClFileSystemOperations.hh:211
std::string ToString()
Definition: XrdClFileSystemOperations.hh:583
XRootDStatus Stat(const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus GetXAttr(const std::string &path, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0)
SendInfo operation (.
Definition: XrdClFileSystemOperations.hh:876
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:1263
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:756
Helper class for unpacking single XAttr from bulk response.
Definition: XrdClOperationHandlers.hh:77
std::string ToString()
Definition: XrdClFileSystemOperations.hh:677
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:307
@ PathArg
Definition: XrdClFileSystemOperations.hh:1245
@ BufferArg
Definition: XrdClFileSystemOperations.hh:288
ChModImpl< false > ChMod
Definition: XrdClFileSystemOperations.hh:615
@ FlagsArg
Definition: XrdClFileSystemOperations.hh:944
XRootDStatus SetXAttr(const std::string &path, const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0)
std::string ToString()
Definition: XrdClFileSystemOperations.hh:893
FileSystem * filesystem
The file system object itself.
Definition: XrdClFileSystemOperations.hh:96
StatImpl< false > Stat(File *file, Arg< bool > force)
Definition: XrdClFileOperations.hh:393
QueryImpl< false > Query
Definition: XrdClFileSystemOperations.hh:325
@ SizeArg
Definition: XrdClFileSystemOperations.hh:345
bool IsOK() const
We're fine.
Definition: XrdClStatus.hh:120
StatVFSImpl< false > StatVFS
Definition: XrdClFileSystemOperations.hh:773
DirList operation (.
Definition: XrdClFileSystemOperations.hh:819
virtual ~FileSystemOperation()
Destructor.
Definition: XrdClFileSystemOperations.hh:87
GetXAttr operation (.
Definition: XrdClFileSystemOperations.hh:1152
RmDir operation (.
Definition: XrdClFileSystemOperations.hh:511
FileSystemOperation(FileSystem &fs, Args... args)
Definition: XrdClFileSystemOperations.hh:67
Send file/filesystem queries to an XRootD cluster.
Definition: XrdClFileSystem.hh:202
Mv operation (.
Definition: XrdClFileSystemOperations.hh:219
@ DestArg
Definition: XrdClFileSystemOperations.hh:231
DeepLocate operation (.
Definition: XrdClFileSystemOperations.hh:162
@ FileListArg
Definition: XrdClFileSystemOperations.hh:944
Definition: XrdClAnyObject.hh:26
DelXAttrImpl< false > DelXAttr(File *file, Arg< std::string > name)
Definition: XrdClFileOperations.hh:1208
Rm operation (.
Definition: XrdClFileSystemOperations.hh:398
PrepareImpl< false > Prepare
Definition: XrdClFileSystemOperations.hh:983
@ PathArg
Definition: XrdClFileSystemOperations.hh:174
XRootDStatus Truncate(const std::string &path, uint64_t size, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
ProtocolImpl< false > Protocol
Definition: XrdClFileSystemOperations.hh:811
ChMod operation (.
Definition: XrdClFileSystemOperations.hh:566
@ FlagsArg
Definition: XrdClFileSystemOperations.hh:174
Definition: XrdClFileSystemOperations.hh:45
@ PathArg
Definition: XrdClFileSystemOperations.hh:522
XRootDStatus Query(QueryCode::Code queryCode, const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:428
Flags
Definition: XrdClFileSystem.hh:175
Definition: XrdClArg.hh:224
XRootDStatus Prepare(const std::vector< std::string > &fileList, PrepareFlags::Flags flags, uint8_t priority, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
@ PathArg
Definition: XrdClFileSystemOperations.hh:1089
@ PathArg
Definition: XrdClFileSystemOperations.hh:578
XRootDStatus StatVFS(const std::string &path, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
@ PathArg
Definition: XrdClFileSystemOperations.hh:672
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:484
const uint16_t stError
An error occurred that could potentially be retried.
Definition: XrdClStatus.hh:32
Prepare operation (.
Definition: XrdClFileSystemOperations.hh:932
std::string ToString()
Definition: XrdClFileSystemOperations.hh:527
@ PathArg
Definition: XrdClFileSystemOperations.hh:117
Flags
Definition: XrdClFileSystem.hh:156
XRootDStatus ChMod(const std::string &path, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
SetXAttr operation (.
Definition: XrdClFileSystemOperations.hh:991
@ PathArg
Definition: XrdClFileSystemOperations.hh:1164
ListXAttrImpl< false > ListXAttr(File *file)
Definition: XrdClFileOperations.hh:1338
Truncate operation (.
Definition: XrdClFileSystemOperations.hh:333
@ NameArg
Definition: XrdClFileSystemOperations.hh:1164
Binary blob representation.
Definition: XrdClBuffer.hh:34
Ping operation (.
Definition: XrdClFileSystemOperations.hh:622
std::string ToString()
Definition: XrdClFileSystemOperations.hh:792
@ PathArg
Definition: XrdClFileSystemOperations.hh:345
std::string ToString()
Definition: XrdClFileSystemOperations.hh:414
std::string ToString()
Definition: XrdClFileSystemOperations.hh:122
@ SourceArg
Definition: XrdClFileSystemOperations.hh:231
std::string ToString()
Definition: XrdClFileSystemOperations.hh:836
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:136
std::string ToString()
Definition: XrdClFileSystemOperations.hh:470
Helper class for unpacking single XAttrStatus from bulk response.
Definition: XrdClOperationHandlers.hh:41
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:364
@ ModeArg
Definition: XrdClFileSystemOperations.hh:465
Flags
Open flags, may be or'd when appropriate.
Definition: XrdClFileSystem.hh:76
SetXAttr bulk operation (.
Definition: XrdClFileSystemOperations.hh:1077
std::string ToString()
Definition: XrdClFileSystemOperations.hh:742
std::tuple< std::string, std::string > xattr_t
Extended attribute key - value pair.
Definition: XrdClXRootDResponses.hh:285
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1169
XRootDStatus RunImpl()
Definition: XrdClFileSystemOperations.hh:806
std::string ToString()
Definition: XrdClFileSystemOperations.hh:1250
@ PathArg
Definition: XrdClFileSystemOperations.hh:1480