xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdRmcData Class Reference

#include <XrdRmcData.hh>

Inheritance diagram for XrdRmcData:
Inheritance graph
[legend]
Collaboration diagram for XrdRmcData:
Collaboration graph
[legend]

Classes

class  MrSw
 

Public Member Functions

bool Detach (XrdOucCacheIOCD &iocd)
 
long long FSize ()
 
const char * Path ()
 
void Preread ()
 
void Preread (aprParms &Parms)
 
void Preread (long long Offs, int rLen, int Opts=0)
 
int Read (char *Buffer, long long Offset, int Length)
 
int Sync ()
 
int Trunc (long long Offset)
 
int Write (char *Buffer, long long Offset, int Length)
 
 XrdRmcData (XrdRmcReal *cP, XrdOucCacheIO *ioP, long long vn, int opts)
 
- Public Member Functions inherited from XrdOucCacheIO
virtual int Fstat (struct stat &sbuff)
 
virtual const char * Location (bool refresh=false)
 
virtual int pgRead (char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
 
virtual void pgRead (XrdOucCacheIOCB &iocb, char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
 
virtual int pgWrite (char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
 
virtual void pgWrite (XrdOucCacheIOCB &iocb, char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
 
virtual void Read (XrdOucCacheIOCB &iocb, char *buff, long long offs, int rlen)
 
virtual int ReadV (const XrdOucIOVec *readV, int rnum)
 
virtual void ReadV (XrdOucCacheIOCB &iocb, const XrdOucIOVec *readV, int rnum)
 
virtual void Sync (XrdOucCacheIOCB &iocb)
 
virtual void Trunc (XrdOucCacheIOCB &iocb, long long offs)
 
virtual void Update (XrdOucCacheIO &iocp)
 
virtual void Write (XrdOucCacheIOCB &iocb, char *buff, long long offs, int wlen)
 
virtual int WriteV (const XrdOucIOVec *writV, int wnum)
 
virtual void WriteV (XrdOucCacheIOCB &iocb, const XrdOucIOVec *writV, int wnum)
 
 XrdOucCacheIO ()
 Construct and Destructor.
 

Static Public Member Functions

static int setAPR (aprParms &Dest, aprParms &Src, int pSize)
 

Private Member Functions

 ~XrdRmcData ()
 
void QueuePR (long long SegOffs, int rLen, int prHow, int isAuto=0)
 
int Read (XrdOucCacheStats &Now, char *Buffer, long long Offs, int Length)
 

Private Attributes

XrdOucCacheStats Statistics
 
XrdSysXSLock rwLock
 
XrdSysXSLockpPLock
 
XrdSysXSLockrPLock
 
XrdSysXSLockwPLock
 
XrdSysXS_Type pPLopt
 
XrdSysXS_Type rPLopt
 
XrdSysMutex DMutex
 
XrdRmcRealCache
 
XrdOucCacheIOioObj
 
long long VNum
 
long long SegSize
 
long long OffMask
 
long long SegShft
 
int maxCache
 
char isFIS
 
char isRW
 
char Debug
 
XrdRmcReal::prTask prReq
 
XrdSysSemaphoreprStop
 
long long prNSS
 
long long prRR [prRRMax]
 
int prRRNow
 
aprParms Apr
 
long long prCalc
 
long long prBeg [prMax]
 
long long prEnd [prMax]
 
int prNext
 
int prFree
 
int prPerf
 
char prOpt [prMax]
 
char prOK
 
char prActive
 
char prAuto
 

Static Private Attributes

static const int okRW = 1
 
static const int xqRW = 2
 
static const int prRRMax = 5
 
static const int prMax = 8
 
static const int prRun = 1
 
static const int prWait = 2
 
static const int prLRU = 1
 
static const int prSUSE = 2
 
static const int prSKIP = 3
 

Additional Inherited Members

- Static Public Attributes inherited from XrdOucCacheIO
static const uint64_t forceCS = 0x0000000000000001ULL
 
static const int SingleUse = 0x0001
 Mark pages for single use.
 
- Protected Member Functions inherited from XrdOucCacheIO
virtual ~XrdOucCacheIO ()
 

Constructor & Destructor Documentation

◆ XrdRmcData()

XrdRmcData::XrdRmcData ( XrdRmcReal cP,
XrdOucCacheIO ioP,
long long  vn,
int  opts 
)

◆ ~XrdRmcData()

XrdRmcData::~XrdRmcData ( )
inlineprivate

Member Function Documentation

◆ Detach()

bool XrdRmcData::Detach ( XrdOucCacheIOCD iocd)
virtual

Detach this CacheIO object from the cache.

Note
This method must be called instead of using the delete operator since CacheIO objects may have multiple outstanding references and actual deletion may need to be deferred.
Parameters
iocdreference to the detach complete callback object.
Returns
true Deletion can occur immediately. There is no outstanding I/O.
false Deletion must be deferred until it is safe to so from the cache perspective. At which point, the cache will call the DetachDone() method in the passed callback object. No locks may be held with respect to the CacheIO object when this is done to avoid deadlocks.

Implements XrdOucCacheIO.

◆ FSize()

long long XrdRmcData::FSize ( )
inlinevirtual

Obtain size of the file.

Returns
Size of the file in bytes.

Implements XrdOucCacheIO.

References XrdOucCacheIO::FSize(), and ioObj.

◆ Path()

const char * XrdRmcData::Path ( )
inlinevirtual

Get the path associated with this object.

Returns
Pointer to the path.

Implements XrdOucCacheIO.

References ioObj, and XrdOucCacheIO::Path().

◆ Preread() [1/3]

void XrdRmcData::Preread ( )

◆ Preread() [2/3]

void XrdRmcData::Preread ( aprParms Parms)
virtual

Reimplemented from XrdOucCacheIO.

◆ Preread() [3/3]

void XrdRmcData::Preread ( long long  Offs,
int  rLen,
int  Opts = 0 
)
virtual

Reimplemented from XrdOucCacheIO.

◆ QueuePR()

void XrdRmcData::QueuePR ( long long  SegOffs,
int  rLen,
int  prHow,
int  isAuto = 0 
)
private

◆ Read() [1/2]

int XrdRmcData::Read ( char *  buff,
long long  offs,
int  rlen 
)
virtual

Perform an synchronous read.

Parameters
buffpointer to the buffer to receive the results. The buffer must remain valid until the callback is invoked.
offsthe offset into the file.
rlenthe number of bytes to read.
Returns
< 0 - Read failed, value is -errno. >=0 - Read succeeded, value is number of bytes read.

Implements XrdOucCacheIO.

◆ Read() [2/2]

int XrdRmcData::Read ( XrdOucCacheStats Now,
char *  Buffer,
long long  Offs,
int  Length 
)
private

◆ setAPR()

static int XrdRmcData::setAPR ( aprParms Dest,
aprParms Src,
int  pSize 
)
static

◆ Sync()

int XrdRmcData::Sync ( )
inlinevirtual

Perform an synchronous sync() operation.

Returns
<0 - Sync failed, value is -errno. =0 - Sync succeeded.

Implements XrdOucCacheIO.

◆ Trunc()

int XrdRmcData::Trunc ( long long  offs)
virtual

Perform an synchronous trunc() operation.

Parameters
offsthe size the file is have.
Returns
<0 - Trunc failed, value is -errno. =0 - Trunc succeeded.

Implements XrdOucCacheIO.

◆ Write()

int XrdRmcData::Write ( char *  buff,
long long  offs,
int  wlen 
)
virtual

Perform an synchronous write.

Parameters
buffpointer to the buffer holding the contents. The buffer must remain valid until the callback is invoked.
offsthe offset into the file.
wlenthe number of bytes to write
Returns
< 0 - Write failed, value is -errno. >=0 - Write succeeded, value is number of bytes written.

Implements XrdOucCacheIO.

Member Data Documentation

◆ Apr

aprParms XrdRmcData::Apr
private

◆ Cache

XrdRmcReal* XrdRmcData::Cache
private

◆ Debug

char XrdRmcData::Debug
private

◆ DMutex

XrdSysMutex XrdRmcData::DMutex
private

◆ ioObj

XrdOucCacheIO* XrdRmcData::ioObj
private

Referenced by FSize(), and Path().

◆ isFIS

char XrdRmcData::isFIS
private

◆ isRW

char XrdRmcData::isRW
private

◆ maxCache

int XrdRmcData::maxCache
private

◆ OffMask

long long XrdRmcData::OffMask
private

◆ okRW

const int XrdRmcData::okRW = 1
staticprivate

◆ pPLock

XrdSysXSLock* XrdRmcData::pPLock
private

◆ pPLopt

XrdSysXS_Type XrdRmcData::pPLopt
private

◆ prActive

char XrdRmcData::prActive
private

◆ prAuto

char XrdRmcData::prAuto
private

◆ prBeg

long long XrdRmcData::prBeg[prMax]
private

◆ prCalc

long long XrdRmcData::prCalc
private

◆ prEnd

long long XrdRmcData::prEnd[prMax]
private

◆ prFree

int XrdRmcData::prFree
private

◆ prLRU

const int XrdRmcData::prLRU = 1
staticprivate

◆ prMax

const int XrdRmcData::prMax = 8
staticprivate

◆ prNext

int XrdRmcData::prNext
private

◆ prNSS

long long XrdRmcData::prNSS
private

◆ prOK

char XrdRmcData::prOK
private

◆ prOpt

char XrdRmcData::prOpt[prMax]
private

◆ prPerf

int XrdRmcData::prPerf
private

◆ prReq

XrdRmcReal::prTask XrdRmcData::prReq
private

◆ prRR

long long XrdRmcData::prRR[prRRMax]
private

◆ prRRMax

const int XrdRmcData::prRRMax = 5
staticprivate

◆ prRRNow

int XrdRmcData::prRRNow
private

◆ prRun

const int XrdRmcData::prRun = 1
staticprivate

◆ prSKIP

const int XrdRmcData::prSKIP = 3
staticprivate

◆ prStop

XrdSysSemaphore* XrdRmcData::prStop
private

◆ prSUSE

const int XrdRmcData::prSUSE = 2
staticprivate

◆ prWait

const int XrdRmcData::prWait = 2
staticprivate

◆ rPLock

XrdSysXSLock* XrdRmcData::rPLock
private

◆ rPLopt

XrdSysXS_Type XrdRmcData::rPLopt
private

◆ rwLock

XrdSysXSLock XrdRmcData::rwLock
private

◆ SegShft

long long XrdRmcData::SegShft
private

◆ SegSize

long long XrdRmcData::SegSize
private

◆ Statistics

XrdOucCacheStats XrdRmcData::Statistics
private

◆ VNum

long long XrdRmcData::VNum
private

◆ wPLock

XrdSysXSLock* XrdRmcData::wPLock
private

◆ xqRW

const int XrdRmcData::xqRW = 2
staticprivate

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