XrdRmcData Class Reference

#include <XrdRmcData.hh>

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

List of all members.

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)

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

Constructor & Destructor Documentation

XrdRmcData::XrdRmcData ( XrdRmcReal cP,
XrdOucCacheIO ioP,
long long  vn,
int  opts 
)
XrdRmcData::~XrdRmcData (  )  [inline, private]

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 defered.
Parameters:
iocd reference 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 (  )  [inline, virtual]

Obtain size of the file.

Returns:
Size of the file in bytes.

Implements XrdOucCacheIO.

References XrdOucCacheIO::FSize(), and ioObj.

const char* XrdRmcData::Path (  )  [inline, virtual]

Get the path associated with this object.

Returns:
Pointer to the path.

Implements XrdOucCacheIO.

References ioObj, and XrdOucCacheIO::Path().

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

Reimplemented from XrdOucCacheIO.

void XrdRmcData::Preread ( aprParms Parms  )  [virtual]

Reimplemented from XrdOucCacheIO.

void XrdRmcData::Preread (  ) 
void XrdRmcData::QueuePR ( long long  SegOffs,
int  rLen,
int  prHow,
int  isAuto = 0 
) [private]
int XrdRmcData::Read ( XrdOucCacheStats Now,
char *  Buffer,
long long  Offs,
int  Length 
) [private]
int XrdRmcData::Read ( char *  buff,
long long  offs,
int  rlen 
) [virtual]

Perform an synchronous read.

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

Implements XrdOucCacheIO.

static int XrdRmcData::setAPR ( aprParms Dest,
aprParms Src,
int  pSize 
) [static]
int XrdRmcData::Sync (  )  [inline, virtual]

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:
offs the 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:
buff pointer to the buffer holding the contents. The buffer must remain valid until the callback is invoked.
offs the offset into the file.
wlen the 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

char XrdRmcData::Debug [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 [static, 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 [static, private]
const int XrdRmcData::prMax = 8 [static, private]
int XrdRmcData::prNext [private]
long long XrdRmcData::prNSS [private]
char XrdRmcData::prOK [private]
char XrdRmcData::prOpt[prMax] [private]
int XrdRmcData::prPerf [private]
long long XrdRmcData::prRR[prRRMax] [private]
const int XrdRmcData::prRRMax = 5 [static, private]
int XrdRmcData::prRRNow [private]
const int XrdRmcData::prRun = 1 [static, private]
const int XrdRmcData::prSKIP = 3 [static, private]
const int XrdRmcData::prSUSE = 2 [static, private]
const int XrdRmcData::prWait = 2 [static, private]
long long XrdRmcData::SegShft [private]
long long XrdRmcData::SegSize [private]
long long XrdRmcData::VNum [private]
const int XrdRmcData::xqRW = 2 [static, private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1