19 #ifndef __XRD_CL_XROOTD_RESPONSES_HH__ 20 #define __XRD_CL_XROOTD_RESPONSES_HH__ 223 const std::string &message =
"" ):
231 const std::string &message =
"" ):
258 std::ostringstream o;
259 o <<
"[ERROR] Server responded with an error: [" <<
errNo <<
"] ";
285 typedef std::tuple<std::string, std::string>
xattr_t;
422 StatInfo(
const std::string &
id, uint64_t size, uint32_t flags,
438 const std::string&
GetId()
const;
508 const std::string&
GetOwner()
const;
513 const std::string&
GetGroup()
const;
540 time_t modTime = time;
541 tm *t = gmtime( &modTime );
542 strftime( ts, 255,
"%F %T", t );
548 static const uint8_t r_mask = 0x4;
549 static const uint8_t w_mask = 0x2;
550 static const uint8_t x_mask = 0x1;
552 if( r_mask & oct ) str.push_back(
'r' );
553 else str.push_back(
'-' );
555 if( w_mask & oct ) str.push_back(
'w' );
556 else str.push_back(
'-' );
558 if( x_mask & oct ) str.push_back(
'x' );
559 else str.push_back(
'-' );
562 std::unique_ptr<StatInfoImpl>
pImpl;
659 const std::string &name,
814 size_t pos = parent.find(
'?' );
815 pParent = pos == std::string::npos ? parent : parent.substr( 0, pos );
908 ChunkInfo( uint64_t off = 0, uint32_t len = 0,
void *buff = 0 ):
923 PageInfo( uint64_t offset = 0, uint32_t length = 0,
void *buffer = 0,
924 std::vector<uint32_t> &&cksums = std::vector<uint32_t>() );
960 std::unique_ptr<PageInfoImpl>
pImpl;
1069 (void)status; (void)response;
1074 #endif // __XRD_CL_XROOTD_RESPONSES_HH__ Write access is allowed.
Definition: XrdClXRootDResponses.hh:410
uint32_t pUtilizationStaging
Definition: XrdClXRootDResponses.hh:639
const std::string & GetAddress() const
Get address.
Definition: XrdClXRootDResponses.hh:82
ListEntry(const std::string &hostAddress, const std::string &name, StatInfo *statInfo=0)
Constructor.
Definition: XrdClXRootDResponses.hh:658
Definition: XProtocol.hh:1166
std::unique_ptr< PageInfoImpl > pImpl
pointer to implementation
Definition: XrdClXRootDResponses.hh:960
virtual ~ResponseHandler()
Definition: XrdClXRootDResponses.hh:1039
#define kXR_isServer
Definition: XProtocol.hh:1101
Definition: XrdClAnyObject.hh:32
const std::string & GetChecksum() const
Get checksum.
AccessType
Describes the allowed access type for the file at given location.
Definition: XrdClXRootDResponses.hh:56
const std::string & GetErrorMessage() const
Get error message.
Definition: XrdClXRootDResponses.hh:238
#define kXR_attrProxy
Definition: XProtocol.hh:1103
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition: XrdClXRootDResponses.hh:966
uint64_t pNodesStaging
Definition: XrdClXRootDResponses.hh:637
Extended attribute operation status.
Definition: XrdClXRootDResponses.hh:290
StatInfo * pStatInfo
Definition: XrdClXRootDResponses.hh:717
bool ParseServerResponse(const char *data)
Parse server response and fill up the object.
Definition: XProtocol.hh:1168
Directory list.
Definition: XrdClXRootDResponses.hh:645
AccessType GetAccessType() const
Get access type.
Definition: XrdClXRootDResponses.hh:98
uint64_t pFreeStaging
Definition: XrdClXRootDResponses.hh:638
const std::string & GetModeAsString() const
Get mode.
Meta attribute.
Definition: XrdClXRootDResponses.hh:347
uint64_t pFreeRW
Definition: XrdClXRootDResponses.hh:635
uint64_t GetFreeRW() const
Get size of the largest contiguous area of free r/w space (in MB)
Definition: XrdClXRootDResponses.hh:587
uint64_t GetNodesStaging() const
Get number of nodes that can provide staging space.
Definition: XrdClXRootDResponses.hh:603
Definition: XProtocol.hh:1169
std::string ToString() const
Create a string representation.
uint32_t GetHostInfo() const
Get host info.
Definition: XrdClXRootDResponses.hh:369
Object stat info.
Definition: XrdClXRootDResponses.hh:395
Definition: XrdClXRootDResponses.hh:407
ConstIterator End() const
Get the end iterator.
Definition: XrdClXRootDResponses.hh:788
const std::string & GetGroup() const
Get group.
const uint16_t errErrorResponse
Definition: XrdClStatus.hh:102
uint32_t pUtilizationRW
Definition: XrdClXRootDResponses.hh:636
Definition: XrdClXRootDResponses.hh:918
static bool HasStatInfo(const char *data)
Returns true if data contain stat info.
Extended attributes with status.
Definition: XrdClXRootDResponses.hh:308
#define kXR_attrMeta
Definition: XProtocol.hh:1102
bool IsManager() const
Check whether the location is a manager.
Definition: XrdClXRootDResponses.hh:114
ConstIterator Begin() const
Get the begin iterator.
Definition: XrdClXRootDResponses.hh:772
LocationInfo()
Constructor.
HostInfo()
Definition: XrdClXRootDResponses.hh:1021
Back up copy exists.
Definition: XrdClXRootDResponses.hh:411
static void OctToString(uint8_t oct, std::string &str)
Definition: XrdClXRootDResponses.hh:546
server node where the file is pending to be online
Definition: XrdClXRootDResponses.hh:50
Manager.
Definition: XrdClXRootDResponses.hh:345
bool ParseServerResponse(const char *data)
Parse server response and fill up the object.
uint64_t GetSize() const
Get size (in bytes)
Definition: XProtocol.hh:1165
const std::string & GetHostAddress() const
Get host address.
Definition: XrdClXRootDResponses.hh:677
void Add(ListEntry *entry)
Add an entry to the list - takes ownership.
Definition: XrdClXRootDResponses.hh:748
bool ExtendedFormat() const
Has extended stat information.
XRootDStatus(const Status &st, const std::string &message="")
Constructor.
Definition: XrdClXRootDResponses.hh:230
bool IsServer() const
Check whether the location is a server.
Definition: XrdClXRootDResponses.hh:106
std::string pMessage
Definition: XrdClXRootDResponses.hh:270
Path location info.
Definition: XrdClXRootDResponses.hh:39
uint16_t code
Error type, or additional hints on what to do.
Definition: XrdClStatus.hh:138
std::string GetChangeTimeAsString() const
Get change time.
XAttr(const std::string &name, const std::string &value="", const XRootDStatus &status=XRootDStatus())
Definition: XrdClXRootDResponses.hh:319
void SetErrorMessage(const std::string &message)
Set the error message.
Definition: XrdClXRootDResponses.hh:246
std::vector< Location > LocationList
List of locations.
Definition: XrdClXRootDResponses.hh:128
Location.
Definition: XrdClXRootDResponses.hh:65
uint8_t pFileHandle[4]
Definition: XrdClXRootDResponses.hh:895
uint64_t GetNodesRW() const
Get number of nodes that can provide read/write space.
Definition: XrdClXRootDResponses.hh:579
XAttrStatus(const std::string &name, const XRootDStatus &status)
Definition: XrdClXRootDResponses.hh:295
Iterator Begin()
Get the begin iterator.
Definition: XrdClXRootDResponses.hh:764
LocationType pType
Definition: XrdClXRootDResponses.hh:121
PageInfo(uint64_t offset=0, uint32_t length=0, void *buffer=0, std::vector< uint32_t > &&cksums=std::vector< uint32_t >())
Default constructor.
Procedure execution status.
Definition: XrdClStatus.hh:110
bool ParseServerResponse(const std::string &hostId, const char *data)
Parse server response and fill up the object.
ChunkList & GetChunks()
Get chunks.
Definition: XrdClXRootDResponses.hh:998
StatInfo * GetStatInfo()
Get the stat info object.
Definition: XrdClXRootDResponses.hh:693
uint64_t GetChangeTime() const
Get change time (in seconds since epoch)
Definition: XrdClXRootDResponses.hh:279
Definition: XProtocol.hh:1167
void SetParentName(const std::string &parent)
Set name of the parent directory.
Definition: XrdClXRootDResponses.hh:812
Information returned by file open operation.
Definition: XrdClXRootDResponses.hh:848
#define kXR_isManager
Definition: XProtocol.hh:1100
~OpenInfo()
Destructor.
Definition: XrdClXRootDResponses.hh:865
Definition: XProtocol.hh:1163
Iterator End()
Get the location end iterator.
Definition: XrdClXRootDResponses.hh:180
void * buffer
length of the chunk
Definition: XrdClXRootDResponses.hh:913
XRootDStatus(uint16_t st=0, uint16_t code=0, uint32_t errN=0, const std::string &message="")
Constructor.
Definition: XrdClXRootDResponses.hh:220
Protocol response.
Definition: XrdClXRootDResponses.hh:337
const ChunkList & GetChunks() const
Get chunks.
Definition: XrdClXRootDResponses.hh:1006
uint64_t GetFreeStaging() const
Get size of the largest contiguous area of free staging space (in MB)
Definition: XrdClXRootDResponses.hh:611
read access is allowed
Definition: XrdClXRootDResponses.hh:58
uint64_t pSessionId
Definition: XrdClXRootDResponses.hh:896
uint32_t GetFlags() const
Get flags.
bool ProcessLocation(std::string &location)
ListEntry * At(uint32_t index)
Get an entry at given index.
Definition: XrdClXRootDResponses.hh:756
const StatInfo * GetStatInfo() const
Get the stat info.
Definition: XrdClXRootDResponses.hh:881
uint8_t GetUtilizationRW() const
Get percentage of the partition utilization represented by FreeRW.
Definition: XrdClXRootDResponses.hh:595
Definition: XrdClXRootDResponses.hh:1019
Definition: XProtocol.hh:1162
uint32_t GetSize() const
Get number of locations.
Definition: XrdClXRootDResponses.hh:148
const std::string & GetId() const
Get id.
OpenInfo(const uint8_t *fileHandle, uint64_t sessionId, StatInfo *statInfo=0)
Constructor.
Definition: XrdClXRootDResponses.hh:854
std::string GetAccessTimeAsString() const
Get change time.
std::vector< HostInfo > HostList
Definition: XrdClXRootDResponses.hh:1031
DirList::iterator Iterator
Directory listing iterator.
Definition: XrdClXRootDResponses.hh:738
uint64_t GetAccessTime() const
Get change time (in seconds since epoch)
const std::string & GetParentName() const
Get parent directory name.
Definition: XrdClXRootDResponses.hh:804
DirList pDirList
Definition: XrdClXRootDResponses.hh:839
LocationList pLocations
Definition: XrdClXRootDResponses.hh:208
uint32_t flags
Host type.
Definition: XrdClXRootDResponses.hh:1025
bool TestHostInfo(uint32_t flags)
Test host info flags.
Definition: XrdClXRootDResponses.hh:377
HostTypes
Types of XRootD servers.
Definition: XrdClXRootDResponses.hh:343
ChunkInfo(uint64_t off=0, uint32_t len=0, void *buff=0)
Constructor.
Definition: XrdClXRootDResponses.hh:908
const StatInfo * GetStatInfo() const
Get the stat info object.
Definition: XrdClXRootDResponses.hh:701
uint32_t length
offset in the file
Definition: XrdClXRootDResponses.hh:912
LocationList::iterator Iterator
Iterator over locations.
Definition: XrdClXRootDResponses.hh:133
manager node where the file is online
Definition: XrdClXRootDResponses.hh:47
Describe a data chunk for vector read.
Definition: XrdClXRootDResponses.hh:903
Request status.
Definition: XrdClXRootDResponses.hh:214
const std::string & GetName() const
Get file name.
Definition: XrdClXRootDResponses.hh:685
Definition: XrdClAnyObject.hh:25
std::string pHostAddress
Definition: XrdClXRootDResponses.hh:715
void SetStatInfo(StatInfo *info)
Set the stat info object (and transfer the ownership)
Definition: XrdClXRootDResponses.hh:709
LocationType GetType() const
Get location type.
Definition: XrdClXRootDResponses.hh:90
ProtocolInfo(uint32_t version, uint32_t hostInfo)
Constructor.
Definition: XrdClXRootDResponses.hh:355
XAttr(const std::string &name, const XRootDStatus &status)
Definition: XrdClXRootDResponses.hh:313
uint64_t GetOffset() const
Get the offset.
server node where the file is online
Definition: XrdClXRootDResponses.hh:49
uint32_t pSize
Definition: XrdClXRootDResponses.hh:1013
uint32_t protocol
Version of the protocol the host is speaking.
Definition: XrdClXRootDResponses.hh:1026
Supervisor attribute.
Definition: XrdClXRootDResponses.hh:349
VFS stat info.
Definition: XrdClXRootDResponses.hh:568
ChunkList pChunks
Definition: XrdClXRootDResponses.hh:1012
URL url
URL of the host.
Definition: XrdClXRootDResponses.hh:1028
~DirectoryList()
Destructor.
std::string pAddress
Definition: XrdClXRootDResponses.hh:120
Iterator End()
Get the end iterator.
Definition: XrdClXRootDResponses.hh:780
ConstIterator Begin() const
Get the location begin iterator.
Definition: XrdClXRootDResponses.hh:172
void SetSize(uint32_t size)
Set size.
Definition: XrdClXRootDResponses.hh:990
manager node where the file is pending to be online
Definition: XrdClXRootDResponses.hh:48
Location & At(uint32_t index)
Get the location at index.
Definition: XrdClXRootDResponses.hh:156
Flags
Flags.
Definition: XrdClXRootDResponses.hh:401
#define kXR_attrSuper
Definition: XProtocol.hh:1104
Vector read info.
Definition: XrdClXRootDResponses.hh:971
uint32_t GetVersion() const
Get version info.
Definition: XrdClXRootDResponses.hh:361
XRootDStatus status
Definition: XrdClXRootDResponses.hh:302
HostInfo(const URL &u, bool lb=false)
Definition: XrdClXRootDResponses.hh:1023
Handle an async response.
Definition: XrdClXRootDResponses.hh:1036
Location(const std::string &address, LocationType type, AccessType access)
Constructor.
Definition: XrdClXRootDResponses.hh:72
void * GetBuffer()
Get the buffer.
uint64_t offset
Definition: XrdClXRootDResponses.hh:911
StatInfo * pStatInfo
Definition: XrdClXRootDResponses.hh:897
AccessType pAccess
Definition: XrdClXRootDResponses.hh:122
std::string pParent
Definition: XrdClXRootDResponses.hh:840
uint32_t GetSize() const
Get the size of the listing.
Definition: XrdClXRootDResponses.hh:796
virtual void HandleResponse(XRootDStatus *status, AnyObject *response)
Definition: XrdClXRootDResponses.hh:1066
Handle the stateful operations.
Definition: XrdClFileStateHandler.hh:76
Neither a file nor a directory.
Definition: XrdClXRootDResponses.hh:405
uint64_t pNodesRW
Definition: XrdClXRootDResponses.hh:634
#define access(a, b)
Definition: XrdPosix.hh:39
URL representation.
Definition: XrdClURL.hh:30
void SetFlags(uint32_t flags)
Set flags.
std::unique_ptr< StatInfoImpl > pImpl
Definition: XrdClXRootDResponses.hh:562
virtual void HandleResponseWithHosts(XRootDStatus *status, AnyObject *response, HostList *hostList)
Definition: XrdClXRootDResponses.hh:1050
uint32_t errNo
Errno, if any.
Definition: XrdClStatus.hh:139
uint32_t GetSize() const
Get Size.
Definition: XrdClXRootDResponses.hh:982
This is a directory.
Definition: XrdClXRootDResponses.hh:404
Read access is allowed.
Definition: XrdClXRootDResponses.hh:409
Buffer BinaryDataInfo
Binary buffer.
Definition: XrdClXRootDResponses.hh:332
Proxy attribute.
Definition: XrdClXRootDResponses.hh:348
static const std::string dStatPrefix
Definition: XrdClXRootDResponses.hh:842
Data server.
Definition: XrdClXRootDResponses.hh:346
write access is allowed
Definition: XrdClXRootDResponses.hh:59
uint32_t pVersion
Definition: XrdClXRootDResponses.hh:383
uint32_t GetLength() const
Get the data length.
bool HasChecksum() const
Has checksum.
Send file/filesystem queries to an XRootD cluster.
Definition: XrdClFileSystem.hh:202
void GetFileHandle(uint8_t *fileHandle) const
Get the file handle (4bytes)
Definition: XrdClXRootDResponses.hh:873
uint32_t pHostInfo
Definition: XrdClXRootDResponses.hh:384
std::string value
Definition: XrdClXRootDResponses.hh:326
static std::string TimeToString(uint64_t time)
Definition: XrdClXRootDResponses.hh:537
Definition: XrdClXRootDResponses.hh:278
std::string pName
Definition: XrdClXRootDResponses.hh:716
LocationType
Describes the node type and file status for a given location.
Definition: XrdClXRootDResponses.hh:45
~ListEntry()
Destructor.
Definition: XrdClXRootDResponses.hh:669
std::vector< uint32_t > & GetCksums()
Get the checksums.
bool ParseServerResponse(const char *data)
Parse server response and fill up the object.
StatInfoVFS()
Constructor.
DirList::const_iterator ConstIterator
Directory listing const iterator.
Definition: XrdClXRootDResponses.hh:743
DirectoryList()
Constructor.
void SetSize(uint64_t size)
Set size.
std::string GetModTimeAsString() const
Get modification time.
std::tuple< std::string, std::string > xattr_t
Extended attribute key - value pair.
Definition: XrdClXRootDResponses.hh:285
std::string ToStr() const
Convert to string.
Definition: XrdClXRootDResponses.hh:254
void Add(const Location &location)
Add a location.
Definition: XrdClXRootDResponses.hh:196
Executable/searchable bit set.
Definition: XrdClXRootDResponses.hh:403
VectorReadInfo()
Constructor.
Definition: XrdClXRootDResponses.hh:977
uint64_t GetModTime() const
Get modification time (in seconds since epoch)
const std::string GetModeAsOctString() const
Get mode.
bool loadBalancer
Was the host used as a load balancer.
Definition: XrdClXRootDResponses.hh:1027
uint64_t GetSessionId() const
Definition: XrdClXRootDResponses.hh:889
std::vector< ListEntry * > DirList
Directory listing.
Definition: XrdClXRootDResponses.hh:733
const std::string & GetOwner() const
Get owner.
File is not online (ie. on disk)
Definition: XrdClXRootDResponses.hh:406
uint8_t GetUtilizationStaging() const
Get percentage of the partition utilization represented by FreeStaging.
Definition: XrdClXRootDResponses.hh:619
ConstIterator End() const
Get the location end iterator.
Definition: XrdClXRootDResponses.hh:188
LocationList::const_iterator ConstIterator
Iterator over locations.
Definition: XrdClXRootDResponses.hh:138
Iterator Begin()
Get the location begin iterator.
Definition: XrdClXRootDResponses.hh:164
std::string name
Definition: XrdClXRootDResponses.hh:301
Binary blob representation.
Definition: XrdClBuffer.hh:33
Directory entry.
Definition: XrdClXRootDResponses.hh:652
Definition: XProtocol.hh:1164
bool TestFlags(uint32_t flags) const
Test flags.