24#ifndef SRC_XRDAPPS_RECORDPLUGIN_XRDCLACTION_HH_
25#define SRC_XRDAPPS_RECORDPLUGIN_XRDCLACTION_HH_
47 :
id(reinterpret_cast<uint64_t>(file))
49 ,
start(
std::chrono::system_clock::now())
58 stop = std::chrono::system_clock::now();
67 std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> tp)
69 auto secs = std::chrono::time_point_cast<std::chrono::seconds>(tp);
70 auto ns = std::chrono::time_point_cast<std::chrono::nanoseconds>(tp)
71 - std::chrono::time_point_cast<std::chrono::nanoseconds>(secs);
72 return secs.time_since_epoch().count() + ns.count() / 1000000000.0;
80 auto now = std::chrono::system_clock::now();
91 ss <<
"\"" <<
id <<
"\"" <<
',';
92 ss <<
"\"" <<
Name() <<
"\"" <<
',';
96 ss <<
"\"" << std::fixed << std::setprecision(9) << tstart <<
"\"" <<
",";
97 std::string argstr =
ArgStr();
100 ss <<
"\"" << argstr <<
timeout <<
"\"" <<
',';
101 ss <<
"\"" << std::fixed << std::setprecision(9) << tstop <<
"\"" <<
",";
103 while (ststr.back() ==
' ')
105 ss <<
"\"" << ststr <<
"\"" <<
',';
118 virtual std::string
Name() = 0;
132 std::chrono::system_clock::time_point
start;
135 std::chrono::system_clock::time_point
stop;
152 std::string
Name() {
return "Open"; }
156 std::stringstream ss;
178 std::string
Name() {
return "Close"; }
194 std::string
Name() {
return "Stat"; }
204 std::stringstream ss;
205 ss << std::to_string(info->
GetSize()) <<
';';
206 ss << std::to_string(info->
GetFlags()) <<
';';
232 std::string
Name() {
return "Read"; }
258 std::string
Name() {
return "PgRead"; }
287 std::string
Name() {
return "Write"; }
304 std::string
Name() {
return "PgWrite"; }
308 std::stringstream ss;
309 ss << std::to_string(
offset) <<
';' << std::to_string(
size);
327 std::string
Name() {
return "Sync"; }
343 std::string
Name() {
return "Truncate"; }
361 std::string
Name() {
return "VectorRead"; }
367 std::stringstream ss;
368 ss <<
req[0].offset <<
";" <<
req[0].length;
369 for (
size_t i = 1; i <
req.size(); ++i)
370 ss <<
";" <<
req[i].offset <<
";" <<
req[i].length;
380 std::stringstream ss;
383 for (
auto& ch : chunks)
384 ss <<
';' << ch.offset <<
';' << ch.length;
402 std::string
Name() {
return "VectorWrite"; }
408 std::stringstream ss;
409 ss <<
req[0].offset <<
";" <<
req[0].length;
410 for (
size_t i = 1; i <
req.size(); ++i)
411 ss <<
";" <<
req[i].offset <<
";" <<
req[i].length;
429 std::string
Name() {
return "Fcntl"; }
Definition XrdClAnyObject.hh:33
void Get(Type &object)
Retrieve the object being held.
Definition XrdClAnyObject.hh:78
Binary blob representation.
Definition XrdClBuffer.hh:34
uint32_t GetSize() const
Get the size of the message.
Definition XrdClBuffer.hh:132
Object stat info.
Definition XrdClXRootDResponses.hh:400
uint64_t GetChangeTime() const
Get change time (in seconds since epoch)
uint64_t GetSize() const
Get size (in bytes)
const std::string GetModeAsOctString() const
Get mode.
const std::string & GetOwner() const
Get owner.
uint32_t GetFlags() const
Get flags.
const std::string & GetGroup() const
Get group.
uint64_t GetModTime() const
Get modification time (in seconds since epoch)
uint64_t GetAccessTime() const
Get change time (in seconds since epoch)
const std::string & GetChecksum() const
Get checksum.
Vector read info.
Definition XrdClXRootDResponses.hh:1061
uint32_t GetSize() const
Get Size.
Definition XrdClXRootDResponses.hh:1071
ChunkList & GetChunks()
Get chunks.
Definition XrdClXRootDResponses.hh:1087
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdClAction.hh:34
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition XrdClXRootDResponses.hh:1055
Definition XrdOucJson.hh:4517
Mode
Access mode.
Definition XrdClFileSystem.hh:122
Action.
Definition XrdClAction.hh:39
std::string serialrsp
Definition XrdClAction.hh:134
virtual std::string Name()=0
Action name.
uint16_t timeout
Definition XrdClAction.hh:131
virtual std::string ArgStr()=0
Convert operation arguments into a string.
std::chrono::system_clock::time_point start
Definition XrdClAction.hh:132
XRootDStatus status
Definition XrdClAction.hh:133
static double time(std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > tp)
Convert timpoint to unix timestamp with ns.
Definition XrdClAction.hh:66
std::chrono::system_clock::time_point stop
Definition XrdClAction.hh:135
virtual ~Action()
Destructor.
Definition XrdClAction.hh:113
static double timeNow()
Get curretn unix time in ns precision as a double.
Definition XrdClAction.hh:78
uint64_t id
Definition XrdClAction.hh:130
virtual void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:128
void RecordResult(XRootDStatus *st, AnyObject *rsp)
Record the server response / error / timeout.
Definition XrdClAction.hh:56
std::string ToString()
Convert the action / response data into csv row.
Definition XrdClAction.hh:88
Action(void *file, uint16_t timeout)
Definition XrdClAction.hh:46
Describe a data chunk for vector read.
Definition XrdClXRootDResponses.hh:917
uint32_t length
offset in the file
Definition XrdClXRootDResponses.hh:949
Close action.
Definition XrdClAction.hh:172
std::string Name()
Action name.
Definition XrdClAction.hh:178
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:180
CloseAction(void *file, uint16_t timeout)
Definition XrdClAction.hh:173
Fcntl action.
Definition XrdClAction.hh:422
uint32_t req
Definition XrdClAction.hh:442
FcntlAction(void *file, const Buffer &arg, uint16_t timeout)
Definition XrdClAction.hh:423
std::string Name()
Action name.
Definition XrdClAction.hh:429
void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:433
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:431
Open action.
Definition XrdClAction.hh:142
const std::string url
Definition XrdClAction.hh:163
OpenFlags::Flags flags
Definition XrdClAction.hh:164
OpenAction(void *file, const std::string &url, OpenFlags::Flags flags, Access::Mode mode, uint16_t timeout)
Definition XrdClAction.hh:143
Access::Mode mode
Definition XrdClAction.hh:165
std::string Name()
Action name.
Definition XrdClAction.hh:152
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:154
Flags
Open flags, may be or'd when appropriate.
Definition XrdClFileSystem.hh:76
Definition XrdClXRootDResponses.hh:956
size_t GetNbRepair()
Get number of repaired pages.
uint32_t GetLength() const
Get the data length.
Definition XrdClAction.hh:250
uint64_t offset
Definition XrdClAction.hh:271
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:260
void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:262
std::string Name()
Action name.
Definition XrdClAction.hh:258
PgReadAction(void *file, uint64_t offset, uint32_t size, uint16_t timeout)
Definition XrdClAction.hh:251
uint32_t size
Definition XrdClAction.hh:272
Definition XrdClAction.hh:296
uint32_t size
Definition XrdClAction.hh:314
uint64_t offset
Definition XrdClAction.hh:313
PgWriteAction(void *file, uint64_t offset, uint32_t size, uint16_t timeout)
Definition XrdClAction.hh:297
std::string Name()
Action name.
Definition XrdClAction.hh:304
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:306
Read action.
Definition XrdClAction.hh:224
ReadAction(void *file, uint64_t offset, uint32_t size, uint16_t timeout)
Definition XrdClAction.hh:225
uint32_t size
Definition XrdClAction.hh:246
std::string Name()
Action name.
Definition XrdClAction.hh:232
uint64_t offset
Definition XrdClAction.hh:245
void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:236
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:234
Stat action.
Definition XrdClAction.hh:187
bool force
Definition XrdClAction.hh:217
std::string Name()
Action name.
Definition XrdClAction.hh:194
void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:198
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:196
StatAction(void *file, bool force, uint16_t timeout)
Definition XrdClAction.hh:188
std::string ToString() const
Create a string representation.
Sync action.
Definition XrdClAction.hh:321
std::string Name()
Action name.
Definition XrdClAction.hh:327
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:329
SyncAction(void *file, uint16_t timeout)
Definition XrdClAction.hh:322
Truncate action.
Definition XrdClAction.hh:336
uint32_t size
Definition XrdClAction.hh:347
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:345
TruncateAction(void *file, uint64_t size, uint16_t timeout)
Definition XrdClAction.hh:337
std::string Name()
Action name.
Definition XrdClAction.hh:343
VectorRead action.
Definition XrdClAction.hh:354
std::string Name()
Action name.
Definition XrdClAction.hh:361
VectorReadAction(void *file, const ChunkList &chunks, uint16_t timeout)
Definition XrdClAction.hh:355
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:363
ChunkList req
Definition XrdClAction.hh:388
void Serialize(AnyObject *response)
Serialize server response.
Definition XrdClAction.hh:374
Vector Write action.
Definition XrdClAction.hh:395
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:404
ChunkList req
Definition XrdClAction.hh:415
std::string Name()
Action name.
Definition XrdClAction.hh:402
VectorWriteAction(void *file, const ChunkList &chunks, uint16_t timeout)
Definition XrdClAction.hh:396
Write action.
Definition XrdClAction.hh:279
uint32_t size
Definition XrdClAction.hh:292
std::string ArgStr()
Convert operation arguments into a string.
Definition XrdClAction.hh:289
std::string Name()
Action name.
Definition XrdClAction.hh:287
WriteAction(void *file, uint64_t offset, uint32_t size, uint16_t timeout)
Definition XrdClAction.hh:280
uint64_t offset
Definition XrdClAction.hh:291