xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 Preread (aprParms &Parms)
 
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. More...
 

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. More...
 
- Protected Member Functions inherited from XrdOucCacheIO
virtual ~XrdOucCacheIO ()
 

Constructor & Destructor Documentation

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

Member Function Documentation

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.

long long XrdRmcData::FSize ( )
inlinevirtual

Obtain size of the file.

Returns
Size of the file in bytes.

Implements XrdOucCacheIO.

References XrdOucCacheIO::FSize(), and ioObj.

const char* XrdRmcData::Path ( )
inlinevirtual

Get the path associated with this object.

Returns
Pointer to the path.

Implements XrdOucCacheIO.

References ioObj, and XrdOucCacheIO::Path().

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

Reimplemented from XrdOucCacheIO.

void XrdRmcData::QueuePR ( long long  SegOffs,
int  rLen,
int  prHow,
int  isAuto = 0 
)
private
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.

int XrdRmcData::Read ( XrdOucCacheStats Now,
char *  Buffer,
long long  Offs,
int  Length 
)
private
static int XrdRmcData::setAPR ( aprParms &  Dest,
aprParms &  Src,
int  pSize 
)
static
int XrdRmcData::Sync ( )
inlinevirtual

Perform an synchronous sync() operation.

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

Implements XrdOucCacheIO.

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.

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

aprParms XrdRmcData::Apr
private
XrdRmcReal* XrdRmcData::Cache
private
char XrdRmcData::Debug
private
XrdSysMutex XrdRmcData::DMutex
private
XrdOucCacheIO* XrdRmcData::ioObj
private

Referenced by FSize(), and Path().

char XrdRmcData::isFIS
private
char XrdRmcData::isRW
private
int XrdRmcData::maxCache
private
long long XrdRmcData::OffMask
private
const int XrdRmcData::okRW = 1
staticprivate
XrdSysXSLock* XrdRmcData::pPLock
private
XrdSysXS_Type XrdRmcData::pPLopt
private
char XrdRmcData::prActive
private
char XrdRmcData::prAuto
private
long long XrdRmcData::prBeg[prMax]
private
long long XrdRmcData::prCalc
private
long long XrdRmcData::prEnd[prMax]
private
int XrdRmcData::prFree
private
const int XrdRmcData::prLRU = 1
staticprivate
const int XrdRmcData::prMax = 8
staticprivate
int XrdRmcData::prNext
private
long long XrdRmcData::prNSS
private
char XrdRmcData::prOK
private
char XrdRmcData::prOpt[prMax]
private
int XrdRmcData::prPerf
private
XrdRmcReal::prTask XrdRmcData::prReq
private
long long XrdRmcData::prRR[prRRMax]
private
const int XrdRmcData::prRRMax = 5
staticprivate
int XrdRmcData::prRRNow
private
const int XrdRmcData::prRun = 1
staticprivate
const int XrdRmcData::prSKIP = 3
staticprivate
XrdSysSemaphore* XrdRmcData::prStop
private
const int XrdRmcData::prSUSE = 2
staticprivate
const int XrdRmcData::prWait = 2
staticprivate
XrdSysXSLock* XrdRmcData::rPLock
private
XrdSysXS_Type XrdRmcData::rPLopt
private
XrdSysXSLock XrdRmcData::rwLock
private
long long XrdRmcData::SegShft
private
long long XrdRmcData::SegSize
private
XrdOucCacheStats XrdRmcData::Statistics
private
long long XrdRmcData::VNum
private
XrdSysXSLock* XrdRmcData::wPLock
private
const int XrdRmcData::xqRW = 2
staticprivate

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