|
xrootd
|
#include <XrdOucCacheReal.hh>


Classes | |
| struct | prTask |
Public Member Functions | |
| XrdOucCacheIO * | Attach (XrdOucCacheIO *ioP, int Options=0) |
| int | isAttached () |
| XrdOucCacheReal (int &rc, Parms &Parms, XrdOucCacheIO::aprParms *aprP=0) | |
| ~XrdOucCacheReal () | |
| void | PreRead () |
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 (XrdOucCacheReal::prTask *prReq) |
Private Attributes | |
| XrdOucCacheIO::aprParms | aprDefault |
| XrdSysMutex | CMutex |
| XrdOucCacheSlot * | 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 | XrdOucCacheData |
| XrdOucCacheReal::XrdOucCacheReal | ( | int & | rc, |
| XrdOucCache::Parms & | ParmV, | ||
| XrdOucCacheIO::aprParms * | aprP = 0 |
||
| ) |
References aprDefault, Base, XrdOucCache::Parms::CacheSize, XrdOucCache::canPreRead, Dbg, XrdOucCache::Debug, XrdOucCacheSlot::HLink, hMax, HNum, hTab, XrdOucCacheSlot::Init(), XrdOucCache::isServer, XrdOucCacheSlot::lenMask, Lgs, XrdOucCache::logStats, XrdOucCache::Parms::Max2Cache, maxCache, maxFiles, XrdOucCache::Parms::MaxFiles, XrdOucCacheSlot::SlotList::Next, OffMask, Options, XrdOucCache::Parms::Options, XrdOucCacheSlot::Own, XrdOucCache::Parms::PageSize, XrdOucCacheSlot::SlotList::Prev, prNum, XrdSysThread::Run(), sBeg, SegCnt, SegFull, SegShft, SegSize, sEnd, XrdOucCacheData::setAPR(), sFree, Slash, Slots, and XrdOucCacheRealPRXeq().
References Attached, AZero, Base, CMutex, XrdSysMutex::Lock(), XrdSysSemaphore::Post(), prMutex, prNum, prReady, prStop, SegCnt, SegSize, Slots, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().
| XrdOucCacheIO * XrdOucCacheReal::Attach | ( | XrdOucCacheIO * | ioP, |
| int | Options = 0 |
||
| ) | [virtual] |
Implements XrdOucCache.
References Attached, AZero, CMutex, XrdOucCacheSlot::SlotState::Data, Dbg, ioAdd(), XrdOucCache::isStructured, XrdOucCache::optADB, XrdOucCache::optFIS, XrdOucCache::optFIU, Options, XrdOucCache::optRW, XrdOucCacheIO::Path(), SegCnt, Shift, Slots, XrdOucCacheSlot::Status, and XrdOucCacheData.
| int XrdOucCacheReal::Detach | ( | XrdOucCacheIO * | ioP | ) | [private] |
References Attached, AZero, CMutex, XrdOucCacheSlot::Contents, Dbg, XrdOucCacheSlot::Hide(), HNum, ioDel(), XrdOucCacheSlot::SlotState::LRU, XrdOucCacheSlot::SlotList::Next, XrdOucCacheSlot::Own, XrdOucCacheSlot::Owner(), XrdOucCacheIO::Path(), XrdSysSemaphore::Post(), XrdOucCacheSlot::Pull(), Slash, Slots, XrdOucCacheSlot::Status, and XrdOucCacheSlot::unRef().
Referenced by XrdOucCacheData::Detach().
| void XrdOucCacheReal::eMsg | ( | const char * | Path, |
| const char * | What, | ||
| long long | xOff, | ||
| int | xLen, | ||
| int | ec | ||
| ) | [private] |
| char * XrdOucCacheReal::Get | ( | XrdOucCacheIO * | ioP, |
| long long | lAddr, | ||
| int & | rGot, | ||
| int & | bIO | ||
| ) | [private] |
References Base, CMutex, XrdOucCacheSlot::Contents, XrdOucCacheSlot::Count, Dbg, eMsg(), XrdOucCacheSlot::Find(), XrdOucCacheSlot::Hide(), XrdOucCacheSlot::HLink, HNum, XrdOucCacheSlot::inTrans, XrdOucCacheSlot::SlotState::inUse, XrdOucCacheSlot::ioQ::ioEnd, XrdOucCacheSlot::isNew, XrdOucCacheSlot::isShort, XrdOucCacheSlot::lenMask, XrdSysMutex::Lock(), XrdOucCacheSlot::SlotState::LRU, XrdOucCacheSlot::SlotList::Next, XrdOucCacheSlot::ioQ::Next, XrdOucCacheSlot::Own, XrdOucCacheSlot::Owner(), XrdOucCacheIO::Path(), XrdSysSemaphore::Post(), XrdOucCacheSlot::Pull(), XrdOucCacheIO::Read(), SegCnt, SegFull, SegShft, SegSize, Shift, Slash, Slots, XrdOucCacheSlot::Status, Strip, XrdSysMutex::UnLock(), XrdOucCacheSlot::unRef(), XrdSysSemaphore::Wait(), and XrdOucCacheSlot::SlotState::waitQ.
Referenced by XrdOucCacheData::Preread(), XrdOucCacheData::Read(), and XrdOucCacheData::Write().
| int XrdOucCacheReal::ioAdd | ( | XrdOucCacheIO * | KeyVal, |
| int & | iNum | ||
| ) | [private] |
References XrdOucCacheSlot::Count, XrdOucCacheSlot::File(), XrdOucCacheSlot::HLink, hTab, ioEnt(), ioLookup(), sFree, and Slots.
Referenced by Attach().
| int XrdOucCacheReal::ioDel | ( | XrdOucCacheIO * | KeyVal, |
| int & | iNum | ||
| ) | [private] |
References XrdOucCacheSlot::Count, XrdOucCacheSlot::HLink, hTab, ioEnt(), ioLookup(), sFree, and Slots.
Referenced by Detach().
| int XrdOucCacheReal::ioEnt | ( | XrdOucCacheIO * | kVal | ) | [inline, private] |
| int XrdOucCacheReal::ioLookup | ( | int & | pip, |
| int | hip, | ||
| void * | kval | ||
| ) | [inline, private] |
References XrdOucCacheSlot::HLink, and Slots.
| int XrdOucCacheReal::isAttached | ( | ) | [inline, virtual] |
Reimplemented from XrdOucCache.
References Attached, CMutex, XrdSysMutex::Lock(), and XrdSysMutex::UnLock().
| void XrdOucCacheReal::PreRead | ( | ) |
References XrdOucCacheReal::prTask::Data, Dbg, XrdSysMutex::Lock(), XrdOucCacheReal::prTask::Next, XrdSysSemaphore::Post(), XrdOucCacheData::Preread(), prFirst, prLast, prMutex, prNum, prReady, prStop, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().
Referenced by XrdOucCacheData::Preread(), XrdOucCacheData::QueuePR(), and XrdOucCacheRealPRXeq().
| void XrdOucCacheReal::PreRead | ( | XrdOucCacheReal::prTask * | prReq | ) | [private] |
References XrdSysMutex::Lock(), XrdOucCacheReal::prTask::Next, XrdSysSemaphore::Post(), prFirst, prLast, prMutex, prReady, and XrdSysMutex::UnLock().
| int XrdOucCacheReal::Ref | ( | char * | Addr, |
| int | rAmt, | ||
| int | sFlags = 0 |
||
| ) | [private] |
References Base, CMutex, XrdOucCacheSlot::Contents, XrdOucCacheSlot::Count, Dbg, XrdOucCacheSlot::SlotState::inUse, XrdOucCacheSlot::isSUSE, XrdOucCacheSlot::lenMask, XrdSysMutex::Lock(), XrdOucCacheSlot::reRef(), SegShft, SegSize, Slots, XrdOucCacheSlot::Status, XrdSysMutex::UnLock(), and XrdOucCacheSlot::unRef().
Referenced by XrdOucCacheData::Preread(), and XrdOucCacheData::Read().
| void XrdOucCacheReal::Trunc | ( | XrdOucCacheIO * | ioP, |
| long long | lAddr | ||
| ) | [private] |
References CMutex, XrdOucCacheSlot::Contents, Dbg, XrdOucCacheSlot::Hide(), HNum, XrdOucCacheSlot::SlotList::Next, XrdOucCacheSlot::Own, XrdOucCacheSlot::Owner(), XrdOucCacheIO::Path(), XrdOucCacheSlot::Pull(), SegCnt, Shift, Slash, Slots, and XrdOucCacheSlot::unRef().
Referenced by XrdOucCacheData::Trunc().
| void XrdOucCacheReal::Upd | ( | char * | Addr, |
| int | wAmt, | ||
| int | wOff | ||
| ) | [private] |
References Base, CMutex, XrdOucCacheSlot::Contents, XrdOucCacheSlot::Count, Dbg, XrdOucCacheSlot::SlotState::inUse, XrdOucCacheSlot::isShort, XrdOucCacheSlot::lenMask, XrdSysMutex::Lock(), XrdOucCacheSlot::reRef(), SegShft, Slots, XrdOucCacheSlot::Status, and XrdSysMutex::UnLock().
Referenced by XrdOucCacheData::Write().
friend class XrdOucCacheData [friend] |
Referenced by Attach().
Referenced by XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
int XrdOucCacheReal::Attached [private] |
Referenced by Attach(), Detach(), isAttached(), and ~XrdOucCacheReal().
XrdSysSemaphore* XrdOucCacheReal::AZero [private] |
Referenced by Attach(), Detach(), and ~XrdOucCacheReal().
char* XrdOucCacheReal::Base [private] |
Referenced by Get(), Ref(), Upd(), XrdOucCacheReal(), and ~XrdOucCacheReal().
XrdSysMutex XrdOucCacheReal::CMutex [private] |
Referenced by Attach(), Detach(), Get(), isAttached(), Ref(), Trunc(), Upd(), and ~XrdOucCacheReal().
char XrdOucCacheReal::Dbg [private] |
Referenced by Attach(), Detach(), eMsg(), Get(), PreRead(), Ref(), Trunc(), Upd(), XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
int XrdOucCacheReal::hMax [private] |
Referenced by ioEnt(), and XrdOucCacheReal().
long long XrdOucCacheReal::HNum [private] |
Referenced by Detach(), Get(), Trunc(), and XrdOucCacheReal().
int* XrdOucCacheReal::hTab [private] |
Referenced by ioAdd(), ioDel(), and XrdOucCacheReal().
char XrdOucCacheReal::Lgs [private] |
Referenced by XrdOucCacheData::Detach(), and XrdOucCacheReal().
int XrdOucCacheReal::maxCache [private] |
Referenced by XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
int XrdOucCacheReal::maxFiles [private] |
Referenced by XrdOucCacheReal().
const long long XrdOucCacheReal::MaxFO = 0x000007ffffffffffLL [static, private] |
Referenced by XrdOucCacheData::Preread(), XrdOucCacheData::Read(), XrdOucCacheData::Trunc(), and XrdOucCacheData::Write().
long long XrdOucCacheReal::OffMask [private] |
Referenced by XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
int XrdOucCacheReal::Options [private] |
Referenced by Attach(), XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
prTask* XrdOucCacheReal::prFirst [private] |
Referenced by PreRead().
prTask* XrdOucCacheReal::prLast [private] |
Referenced by PreRead().
XrdSysMutex XrdOucCacheReal::prMutex [private] |
Referenced by PreRead(), and ~XrdOucCacheReal().
int XrdOucCacheReal::prNum [private] |
Referenced by PreRead(), XrdOucCacheData::XrdOucCacheData(), XrdOucCacheReal(), and ~XrdOucCacheReal().
XrdSysSemaphore XrdOucCacheReal::prReady [private] |
Referenced by PreRead(), and ~XrdOucCacheReal().
XrdSysSemaphore* XrdOucCacheReal::prStop [private] |
Referenced by PreRead(), and ~XrdOucCacheReal().
int XrdOucCacheReal::sBeg [private] |
Referenced by XrdOucCacheReal().
long long XrdOucCacheReal::SegCnt [private] |
Referenced by Attach(), Get(), Trunc(), XrdOucCacheReal(), and ~XrdOucCacheReal().
int XrdOucCacheReal::SegFull [private] |
Referenced by Get(), and XrdOucCacheReal().
long long XrdOucCacheReal::SegShft [private] |
Referenced by Get(), Ref(), Upd(), XrdOucCacheData::XrdOucCacheData(), and XrdOucCacheReal().
long long XrdOucCacheReal::SegSize [private] |
Referenced by Get(), Ref(), XrdOucCacheData::XrdOucCacheData(), XrdOucCacheReal(), and ~XrdOucCacheReal().
int XrdOucCacheReal::sEnd [private] |
Referenced by XrdOucCacheReal().
int XrdOucCacheReal::sFree [private] |
Referenced by ioAdd(), ioDel(), and XrdOucCacheReal().
const long long XrdOucCacheReal::Shift = 48 [static, private] |
Referenced by Attach(), Get(), XrdOucCacheData::Preread(), and Trunc().
int* XrdOucCacheReal::Slash [private] |
Referenced by Detach(), Get(), Trunc(), and XrdOucCacheReal().
XrdOucCacheSlot* XrdOucCacheReal::Slots [private] |
Referenced by Attach(), Detach(), Get(), ioAdd(), ioDel(), ioLookup(), Ref(), Trunc(), Upd(), XrdOucCacheReal(), and ~XrdOucCacheReal().
const long long XrdOucCacheReal::Strip = 0x00000000ffffffffLL [static, private] |
Referenced by Get().
1.8.0