xrootd
Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
XrdRmcReal Class Reference

#include <XrdRmcReal.hh>

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

Classes

struct  prTask
 

Public Member Functions

XrdOucCacheIO * Attach (XrdOucCacheIO *ioP, int Options=0)
 
 XrdRmcReal (int &rc, XrdRmc::Parms &Parms, XrdOucCacheIO::aprParms *aprP=0)
 
 ~XrdRmcReal ()
 
void PreRead ()
 
- Public Member Functions inherited from XrdOucCache
virtual int LocalFilePath (const char *url, char *buff=0, int blen=0, LFP_Reason why=ForAccess, bool forall=false)
 
virtual int Prepare (const char *url, int oflags, mode_t mode)
 
virtual int Rename (const char *oldp, const char *newp)
 
virtual int Rmdir (const char *dirp)
 
virtual int Stat (const char *url, struct stat &sbuff)
 
virtual int Truncate (const char *path, off_t size)
 
virtual int Unlink (const char *path)
 
virtual int Xeq (XeqCmd cmd, char *arg, int arglen)
 
 XrdOucCache (const char *ctype)
 
virtual ~XrdOucCache ()
 Destructor. More...
 

Private Member Functions

void eMsg (const char *Path, const char *What, long long xOff, int xLen, int ec)
 
int Detach (XrdOucCacheIO *ioP)
 
char * Get (XrdOucCacheIO *ioP, long long lAddr, int &rGot, int &bIO)
 
int ioAdd (XrdOucCacheIO *KeyVal, int &iNum)
 
int ioDel (XrdOucCacheIO *KeyVal, int &iNum)
 
int ioEnt (XrdOucCacheIO *kVal)
 
int ioLookup (int &pip, int hip, void *kval)
 
int Ref (char *Addr, int rAmt, int sFlags=0)
 
void Trunc (XrdOucCacheIO *ioP, long long lAddr)
 
void Upd (char *Addr, int wAmt, int wOff)
 
void PreRead (XrdRmcReal::prTask *prReq)
 

Private Attributes

XrdOucCacheIO::aprParms aprDefault
 
XrdSysMutex CMutex
 
XrdRmcSlot * Slots
 
int * Slash
 
char * Base
 
long long HNum
 
long long SegCnt
 
long long SegSize
 
long long OffMask
 
long long SegShft
 
int SegFull
 
int maxCache
 
int maxFiles
 
int Options
 
int * hTab
 
int hMax
 
int sFree
 
int sBeg
 
int sEnd
 
char Dbg
 
char Lgs
 
XrdSysSemaphore * AZero
 
int Attached
 
prTask * prFirst
 
prTask * prLast
 
XrdSysMutex prMutex
 
XrdSysSemaphore prReady
 
XrdSysSemaphore * prStop
 
int prNum
 

Static Private Attributes

static const long long Shift = 48
 
static const long long Strip = 0x00000000ffffffffLL
 
static const long long MaxFO = 0x000007ffffffffffLL
 

Friends

class XrdRmcData
 

Additional Inherited Members

- Public Types inherited from XrdOucCache
enum  LFP_Reason { ForAccess =0, ForInfo, ForPath }
 
enum  XeqCmd { xeqNoop = 0 }
 
- Public Attributes inherited from XrdOucCache
XrdOucCacheStats Statistics
 
const char CacheType [8]
 A 1-to-7 character cache type identifier (usually pfc or rmc). More...
 
- Static Public Attributes inherited from XrdOucCache
static const int optFIS = 0x0001
 File is structured (e.g. root file) More...
 
static const int optRW = 0x0004
 File is read/write (o/w read/only) More...
 
static const int optNEW = 0x0014
 File is new -> optRW (o/w read or write) More...
 
static const int optWIN = 0x0024
 File is new -> optRW use write-in cache. More...
 

Constructor & Destructor Documentation

◆ XrdRmcReal()

XrdRmcReal::XrdRmcReal ( int &  rc,
XrdRmc::Parms &  Parms,
XrdOucCacheIO::aprParms *  aprP = 0 
)

◆ ~XrdRmcReal()

XrdRmcReal::~XrdRmcReal ( )

Member Function Documentation

◆ Attach()

XrdOucCacheIO* XrdRmcReal::Attach ( XrdOucCacheIO *  ioP,
int  Options = 0 
)
virtual

Implements XrdOucCache.

◆ Detach()

int XrdRmcReal::Detach ( XrdOucCacheIO *  ioP)
private

◆ eMsg()

void XrdRmcReal::eMsg ( const char *  Path,
const char *  What,
long long  xOff,
int  xLen,
int  ec 
)
private

◆ Get()

char* XrdRmcReal::Get ( XrdOucCacheIO *  ioP,
long long  lAddr,
int &  rGot,
int &  bIO 
)
private

◆ ioAdd()

int XrdRmcReal::ioAdd ( XrdOucCacheIO *  KeyVal,
int &  iNum 
)
private

◆ ioDel()

int XrdRmcReal::ioDel ( XrdOucCacheIO *  KeyVal,
int &  iNum 
)
private

◆ ioEnt()

int XrdRmcReal::ioEnt ( XrdOucCacheIO *  kVal)
inlineprivate

References hMax.

◆ ioLookup()

int XrdRmcReal::ioLookup ( int &  pip,
int  hip,
void *  kval 
)
inlineprivate

References XrdRmcSlot::HLink, and Slots.

◆ PreRead() [1/2]

void XrdRmcReal::PreRead ( )

◆ PreRead() [2/2]

void XrdRmcReal::PreRead ( XrdRmcReal::prTask *  prReq)
private

◆ Ref()

int XrdRmcReal::Ref ( char *  Addr,
int  rAmt,
int  sFlags = 0 
)
private

◆ Trunc()

void XrdRmcReal::Trunc ( XrdOucCacheIO *  ioP,
long long  lAddr 
)
private

◆ Upd()

void XrdRmcReal::Upd ( char *  Addr,
int  wAmt,
int  wOff 
)
private

Friends And Related Function Documentation

◆ XrdRmcData

friend class XrdRmcData
friend

Member Data Documentation

◆ aprDefault

XrdOucCacheIO::aprParms XrdRmcReal::aprDefault
private

◆ Attached

int XrdRmcReal::Attached
private

◆ AZero

XrdSysSemaphore* XrdRmcReal::AZero
private

◆ Base

char* XrdRmcReal::Base
private

◆ CMutex

XrdSysMutex XrdRmcReal::CMutex
private

◆ Dbg

char XrdRmcReal::Dbg
private

◆ hMax

int XrdRmcReal::hMax
private

Referenced by ioEnt().

◆ HNum

long long XrdRmcReal::HNum
private

◆ hTab

int* XrdRmcReal::hTab
private

◆ Lgs

char XrdRmcReal::Lgs
private

◆ maxCache

int XrdRmcReal::maxCache
private

◆ maxFiles

int XrdRmcReal::maxFiles
private

◆ MaxFO

const long long XrdRmcReal::MaxFO = 0x000007ffffffffffLL
staticprivate

◆ OffMask

long long XrdRmcReal::OffMask
private

◆ Options

int XrdRmcReal::Options
private

◆ prFirst

prTask* XrdRmcReal::prFirst
private

◆ prLast

prTask* XrdRmcReal::prLast
private

◆ prMutex

XrdSysMutex XrdRmcReal::prMutex
private

◆ prNum

int XrdRmcReal::prNum
private

◆ prReady

XrdSysSemaphore XrdRmcReal::prReady
private

◆ prStop

XrdSysSemaphore* XrdRmcReal::prStop
private

◆ sBeg

int XrdRmcReal::sBeg
private

◆ SegCnt

long long XrdRmcReal::SegCnt
private

◆ SegFull

int XrdRmcReal::SegFull
private

◆ SegShft

long long XrdRmcReal::SegShft
private

◆ SegSize

long long XrdRmcReal::SegSize
private

◆ sEnd

int XrdRmcReal::sEnd
private

◆ sFree

int XrdRmcReal::sFree
private

◆ Shift

const long long XrdRmcReal::Shift = 48
staticprivate

◆ Slash

int* XrdRmcReal::Slash
private

◆ Slots

XrdRmcSlot* XrdRmcReal::Slots
private

Referenced by ioLookup().

◆ Strip

const long long XrdRmcReal::Strip = 0x00000000ffffffffLL
staticprivate

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