XRootD
XrdCl::Recorder Class Reference

#include <XrdClRecorder.hh>

+ Inheritance diagram for XrdCl::Recorder:
+ Collaboration diagram for XrdCl::Recorder:

Public Member Functions

 Recorder ()
 Constructor. More...
 
virtual ~Recorder ()
 Destructor. More...
 
virtual XRootDStatus Close (ResponseHandler *handler, uint16_t timeout)
 Close. More...
 
virtual XRootDStatus Fcntl (const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
 Fcntl. More...
 
virtual bool GetProperty (const std::string &name, std::string &value) const
 GetProperty. More...
 
virtual bool IsOpen () const
 IsOpen. More...
 
bool IsValid () const
 
virtual XRootDStatus Open (const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
 Open. More...
 
virtual XRootDStatus PgRead (uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
 
virtual XRootDStatus PgWrite (uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout)
 
virtual XRootDStatus Read (uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
 Read. More...
 
virtual bool SetProperty (const std::string &name, const std::string &value)
 SetProperty. More...
 
virtual XRootDStatus Stat (bool force, ResponseHandler *handler, uint16_t timeout)
 Stat. More...
 
virtual XRootDStatus Sync (ResponseHandler *handler, uint16_t timeout)
 Sync. More...
 
virtual XRootDStatus Truncate (uint64_t size, ResponseHandler *handler, uint16_t timeout)
 Truncate. More...
 
virtual XRootDStatus VectorRead (const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout)
 VectorRead. More...
 
virtual XRootDStatus VectorWrite (const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout)
 VectorRead. More...
 
virtual XRootDStatus Visa (ResponseHandler *handler, uint16_t timeout)
 Visa. More...
 
virtual XRootDStatus Write (uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout)
 Write. More...
 
- Public Member Functions inherited from XrdCl::FilePlugIn
virtual ~FilePlugIn ()
 Destructor. More...
 
virtual XRootDStatus Read (uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0)
 
virtual XRootDStatus Write (uint64_t offset, Buffer &&buffer, ResponseHandler *handler, uint16_t timeout=0)
 
virtual XRootDStatus Write (uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0)
 
virtual XRootDStatus WriteV (uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
 

Static Public Member Functions

static void SetOutput (const std::string &cfgpath)
 

Detailed Description

XrdClFile plugin that arecords all user actions and server responses and dumps the data into a csv file.

Definition at line 42 of file XrdClRecorder.hh.

Constructor & Destructor Documentation

◆ Recorder()

XrdCl::Recorder::Recorder ( )
inline

Constructor.

Definition at line 240 of file XrdClRecorder.hh.

240  :
241  file( false ),
242  output( Output::Instance() )
243  {
244  }

◆ ~Recorder()

virtual XrdCl::Recorder::~Recorder ( )
inlinevirtual

Destructor.

Definition at line 257 of file XrdClRecorder.hh.

258  {
259  }

Member Function Documentation

◆ Close()

virtual XRootDStatus XrdCl::Recorder::Close ( ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Close.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 278 of file XrdClRecorder.hh.

280  {
281  std::unique_ptr<Action> ptr( new CloseAction( this, timeout ) );
282  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
283  return file.Close( recHandler, timeout );
284  }
XRootDStatus Close(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:151

References XrdCl::File::Close().

+ Here is the call graph for this function:

◆ Fcntl()

virtual XRootDStatus XrdCl::Recorder::Fcntl ( const Buffer arg,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Fcntl.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 407 of file XrdClRecorder.hh.

410  {
411  std::unique_ptr<Action> ptr( new FcntlAction( this, arg, timeout ) );
412  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
413  return file.Fcntl(arg, recHandler, timeout);
414  }
XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:610

References XrdCl::File::Fcntl().

+ Here is the call graph for this function:

◆ GetProperty()

virtual bool XrdCl::Recorder::GetProperty ( const std::string &  name,
std::string &  value 
) const
inlinevirtual

GetProperty.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 445 of file XrdClRecorder.hh.

447  {
448  return file.GetProperty(name, value);
449  }
bool GetProperty(const std::string &name, std::string &value) const
Definition: XrdClFile.cc:878

References XrdCl::File::GetProperty().

+ Here is the call graph for this function:

◆ IsOpen()

virtual bool XrdCl::Recorder::IsOpen ( ) const
inlinevirtual

IsOpen.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 428 of file XrdClRecorder.hh.

429  {
430  return file.IsOpen();
431  }
bool IsOpen() const
Check if the file is open.
Definition: XrdClFile.cc:846

References XrdCl::File::IsOpen().

+ Here is the call graph for this function:

◆ IsValid()

bool XrdCl::Recorder::IsValid ( ) const
inline
Returns
: true if this is a valid instance, false otherwise

Definition at line 249 of file XrdClRecorder.hh.

250  {
251  return output.IsValid();
252  }

◆ Open()

virtual XRootDStatus XrdCl::Recorder::Open ( const std::string &  url,
OpenFlags::Flags  flags,
Access::Mode  mode,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Open.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 264 of file XrdClRecorder.hh.

269  {
270  std::unique_ptr<Action> ptr( new OpenAction( this, url, flags, mode, timeout ) );
271  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
272  return file.Open( url, flags, mode, recHandler, timeout );
273  }
XRootDStatus Open(const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:99

References XrdCl::File::Open().

+ Here is the call graph for this function:

◆ PgRead()

virtual XRootDStatus XrdCl::Recorder::PgRead ( uint64_t  offset,
uint32_t  size,
void *  buffer,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual
See also
XrdCl:File PgRead

Reimplemented from XrdCl::FilePlugIn.

Definition at line 330 of file XrdClRecorder.hh.

335  {
336  std::unique_ptr<Action> ptr( new PgReadAction( this, offset, size, timeout ) );
337  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
338  return file.PgRead( offset, size, buffer, recHandler, timeout );
339  }
XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:245

References XrdCl::File::PgRead().

+ Here is the call graph for this function:

◆ PgWrite()

virtual XRootDStatus XrdCl::Recorder::PgWrite ( uint64_t  offset,
uint32_t  size,
const void *  buffer,
std::vector< uint32_t > &  cksums,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual
See also
XrdCl::File::PgWrite

Reimplemented from XrdCl::FilePlugIn.

Definition at line 344 of file XrdClRecorder.hh.

350  {
351  std::unique_ptr<Action> ptr( new PgWriteAction( this, offset, size, timeout ) );
352  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
353  return file.PgWrite( offset, size, buffer, cksums, recHandler, timeout );
354  }
XRootDStatus PgWrite(uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:380

References XrdCl::File::PgWrite().

+ Here is the call graph for this function:

◆ Read()

virtual XRootDStatus XrdCl::Recorder::Read ( uint64_t  offset,
uint32_t  size,
void *  buffer,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Read.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 302 of file XrdClRecorder.hh.

307  {
308  std::unique_ptr<Action> ptr( new ReadAction( this, offset, size, timeout ) );
309  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
310  return file.Read( offset, size, buffer, recHandler, timeout );
311  }
XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:206

References XrdCl::File::Read().

+ Here is the call graph for this function:

◆ SetOutput()

static void XrdCl::Recorder::SetOutput ( const std::string &  cfgpath)
inlinestatic

Create the output csv file

Parameters
cfgpath: path for the file to be created

Definition at line 228 of file XrdClRecorder.hh.

229  {
230  static const std::string defaultpath = "/tmp/xrdrecord.csv";
231  const char *envpath = getenv( "XRD_RECORDERPATH" );
232  std::string path = envpath ? envpath :
233  ( !cfgpath.empty() ? cfgpath : defaultpath );
234  Output::Get().SetPath( path );
235  }

Referenced by XrdCl::RecorderFactory::RecorderFactory().

+ Here is the caller graph for this function:

◆ SetProperty()

virtual bool XrdCl::Recorder::SetProperty ( const std::string &  name,
const std::string &  value 
)
inlinevirtual

SetProperty.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 436 of file XrdClRecorder.hh.

438  {
439  return file.SetProperty(name, value);
440  }
bool SetProperty(const std::string &name, const std::string &value)
Definition: XrdClFile.cc:867

References XrdCl::File::SetProperty().

+ Here is the call graph for this function:

◆ Stat()

virtual XRootDStatus XrdCl::Recorder::Stat ( bool  force,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Stat.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 289 of file XrdClRecorder.hh.

292  {
293  std::unique_ptr<Action> ptr( new StatAction( this, force, timeout ) );
294  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
295  return file.Stat(force, recHandler, timeout);
296  }
XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:177

References XrdCl::File::Stat().

+ Here is the call graph for this function:

◆ Sync()

virtual XRootDStatus XrdCl::Recorder::Sync ( ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Sync.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 359 of file XrdClRecorder.hh.

361  {
362  std::unique_ptr<Action> ptr( new SyncAction( this, timeout ) );
363  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
364  return file.Sync( recHandler, timeout );
365  }
XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:414

References XrdCl::File::Sync().

+ Here is the call graph for this function:

◆ Truncate()

virtual XRootDStatus XrdCl::Recorder::Truncate ( uint64_t  size,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Truncate.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 370 of file XrdClRecorder.hh.

373  {
374  std::unique_ptr<Action> ptr( new TruncateAction( this, size, timeout ) );
375  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
376  return file.Truncate(size, recHandler, timeout);
377  }
XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:440

References XrdCl::File::Truncate().

+ Here is the call graph for this function:

◆ VectorRead()

virtual XRootDStatus XrdCl::Recorder::VectorRead ( const ChunkList chunks,
void *  buffer,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

VectorRead.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 382 of file XrdClRecorder.hh.

386  {
387  std::unique_ptr<Action> ptr( new VectorReadAction( this, chunks, timeout ) );
388  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
389  return file.VectorRead(chunks, buffer, recHandler, timeout);
390  }
XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:468

References XrdCl::File::VectorRead().

+ Here is the call graph for this function:

◆ VectorWrite()

virtual XRootDStatus XrdCl::Recorder::VectorWrite ( const ChunkList chunks,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

VectorRead.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 395 of file XrdClRecorder.hh.

398  {
399  std::unique_ptr<Action> ptr( new VectorWriteAction( this, chunks, timeout ) );
400  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
401  return file.VectorWrite( chunks, recHandler, timeout );
402  }
XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:498

References XrdCl::File::VectorWrite().

+ Here is the call graph for this function:

◆ Visa()

virtual XRootDStatus XrdCl::Recorder::Visa ( ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Visa.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 419 of file XrdClRecorder.hh.

421  {
422  return file.Visa(handler, timeout);
423  }
XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Get access token to a file - async.
Definition: XrdClFile.cc:639

References XrdCl::File::Visa().

+ Here is the call graph for this function:

◆ Write()

virtual XRootDStatus XrdCl::Recorder::Write ( uint64_t  offset,
uint32_t  size,
const void *  buffer,
ResponseHandler handler,
uint16_t  timeout 
)
inlinevirtual

Write.

Reimplemented from XrdCl::FilePlugIn.

Definition at line 316 of file XrdClRecorder.hh.

321  {
322  std::unique_ptr<Action> ptr( new WriteAction( this, offset, size, timeout ) );
323  RecordHandler *recHandler = new RecordHandler( output, std::move( ptr ), handler );
324  return file.Write( offset, size, buffer, recHandler, timeout );
325  }
XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
Definition: XrdClFile.cc:286

References XrdCl::File::Write().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: