#include <XrdCmsCache.hh>

Public Member Functions | |
| int | AddFile (XrdCmsSelect &Sel, SMask_t mask) |
| int | DelFile (XrdCmsSelect &Sel, SMask_t mask) |
| int | GetFile (XrdCmsSelect &Sel, SMask_t mask) |
| int | UnkFile (XrdCmsSelect &Sel, SMask_t mask) |
| int | WT4File (XrdCmsSelect &Sel, SMask_t mask) |
| void | Bounce (SMask_t smask, int SNum) |
| void | Drop (SMask_t mask, int SNum, int xHi) |
| int | Init (int fxHold, int fxDelay) |
| void * | TickTock () |
| XrdCmsCache () | |
| ~XrdCmsCache () | |
Public Attributes | |
| XrdCmsPList_Anchor | Paths |
| SMask_t | Vec |
| unsigned int | Start |
| unsigned int | End |
Private Member Functions | |
| void | Add2Q (XrdCmsRRQInfo *Info, XrdCmsKeyItem *cp, int isrw) |
| void | Dispatch (XrdCmsKeyItem *cinfo, short roQ, short rwQ) |
| SMask_t | getBVec (unsigned int todA, unsigned int &todB) |
| void | Recycle (XrdCmsKeyItem *theList) |
Private Attributes | |
| struct { | |
| SMask_t Vec | |
| unsigned int Start | |
| unsigned int End | |
| } | Bhistory [XrdCmsKeyItem::TickRate] |
| XrdSysMutex | myMutex |
| XrdCmsNash | CTable |
| unsigned int | Bounced [STMax] |
| SMask_t | okVec |
| unsigned int | Tick |
| unsigned int | Tock |
| unsigned int | BClock |
| int | DLTime |
| int | Bhits |
| int | Bmiss |
| int | vecHi |
Friends | |
| class | XrdCmsCacheJob |
| XrdCmsCache::~XrdCmsCache | ( | ) | [inline] |
| void XrdCmsCache::Add2Q | ( | XrdCmsRRQInfo * | Info, | |
| XrdCmsKeyItem * | cp, | |||
| int | isrw | |||
| ) | [private] |
References XrdCmsRRQ::Add(), XrdCmsRRQInfo::isRW, XrdCmsRRQInfo::Key, XrdCmsKeyItem::Loc, XrdCmsKeyLoc::roPend, XrdCms::RRQ, and XrdCmsKeyLoc::rwPend.
Referenced by WT4File().
| int XrdCmsCache::AddFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
References XrdCmsNash::Add(), XrdCmsSelect::Advisory, BClock, CTable, XrdCmsKeyLoc::deadline, Dispatch(), DLTime, XrdCmsKey::Equiv(), XrdCmsNash::Find(), XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsSelect::Pending, XrdCmsKeyLoc::pfvec, XrdCmsKeyLoc::qfvec, XrdCmsKey::Ref, XrdCmsKeyLoc::roPend, XrdCmsKeyLoc::rwPend, Tock, XrdCmsKey::TOD, XrdCmsKeyLoc::TOD_B, XrdCmsKey::TODRef, and XrdSysMutex::UnLock().
Referenced by XrdOlbServer::do_Have(), XrdCmsNode::do_Have(), XrdOlbServer::do_PrepSel(), XrdOlbServer::do_Select(), XrdOlbServer::do_StateFWD(), XrdCmsNode::do_StateFWD(), XrdCmsCluster::Locate(), XrdCmsCluster::Select(), XrdCmsCluster::SelNode(), and XrdOlbManager::SelServer().
| void XrdCmsCache::Bounce | ( | SMask_t | smask, | |
| int | SNum | |||
| ) |
References BClock, Bounced, XrdSysMutex::Lock(), myMutex, okVec, XrdSysMutex::UnLock(), and vecHi.
Referenced by XrdOlbManager::AddPath(), XrdCmsProtocol::ConfigCheck(), XrdOlbServer::do_RST(), XrdCmsNode::do_Status(), and XrdOlbManager::Login().
| int XrdCmsCache::DelFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
References XrdCmsSelect::Advisory, CTable, XrdCmsNash::Find(), XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsKeyLoc::pfvec, XrdCmsNash::Recycle(), Say, XrdCmsKeyItem::Unload(), XrdSysMutex::UnLock(), and XrdCmsKey::Val.
Referenced by XrdOlbServer::do_Gone(), XrdCmsNode::do_Gone(), XrdCmsNode::do_Mv(), XrdOlbServer::do_PrepSel(), XrdCmsNode::do_Rm(), XrdCmsNode::do_Rmdir(), XrdOlbServer::do_Select(), and XrdOlbServer::do_StateFWD().
| void XrdCmsCache::Dispatch | ( | XrdCmsKeyItem * | cinfo, | |
| short | roQ, | |||
| short | rwQ | |||
| ) | [private] |
References XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Loc, XrdCmsKeyLoc::pfvec, XrdCmsRRQ::Ready(), XrdCmsKeyLoc::roPend, XrdCms::RRQ, and XrdCmsKeyLoc::rwPend.
Referenced by AddFile().
| void XrdCmsCache::Drop | ( | SMask_t | mask, | |
| int | SNum, | |||
| int | xHi | |||
| ) |
References Bounced, XrdSysMutex::Lock(), myMutex, okVec, Paths, XrdCmsPList_Anchor::Remove(), XrdSysMutex::UnLock(), and vecHi.
Referenced by XrdCmsCluster::Drop().
| SMask_t XrdCmsCache::getBVec | ( | unsigned int | todA, | |
| unsigned int & | todB | |||
| ) | [private] |
| int XrdCmsCache::GetFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
References BClock, XrdCmsSelect::bf, CTable, XrdCmsKeyLoc::deadline, DLTime, XrdCmsNash::Find(), getBVec(), XrdCmsSelect::hf, XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, okVec, XrdCmsSelect::Path, XrdCmsSelect::pf, XrdCmsKeyLoc::pfvec, XrdCmsKeyLoc::qfvec, XrdCmsKey::Ref, XrdCmsKey::TOD, XrdCmsKeyLoc::TOD_B, XrdCmsKey::TODRef, XrdSysMutex::UnLock(), and XrdCmsSelect::Vec.
Referenced by XrdOlbServer::do_PrepSel(), XrdOlbServer::do_Select(), XrdOlbServer::do_StateFWD(), XrdCmsNode::do_StateFWD(), XrdCmsCluster::Locate(), and XrdCmsCluster::Select().
| int XrdCmsCache::Init | ( | int | fxHold, | |
| int | fxDelay | |||
| ) |
References XrdCmsKeyItem::Alloc(), DLTime, XrdCmsKeyItem::Recycle(), XrdSysThread::Run(), Say, Tick, XrdCmsKeyItem::TickRate, XrdCmsKeyItem::Unload(), and XrdCmsStartTickTock().
Referenced by XrdCmsConfig::Configure2().
| void XrdCmsCache::Recycle | ( | XrdCmsKeyItem * | theList | ) | [private] |
References CTable, XrdCmsRRQ::Del(), XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), XrdCmsKeyItem::minAlloc, XrdCmsKeyItem::minFree, myMutex, XrdCmsNash::Recycle(), XrdCmsKeyItem::Replenish(), XrdCmsKeyLoc::roPend, XrdCms::RRQ, XrdCmsKeyLoc::rwPend, Say, XrdCmsKeyItem::Stats(), XrdCmsKey::TODRef, and XrdSysMutex::UnLock().
Referenced by XrdCmsCacheJob::DoIt().
| void * XrdCmsCache::TickTock | ( | ) |
References Bhistory, XrdSysMutex::Lock(), myMutex, XrdCms::Sched, XrdScheduler::Schedule(), XrdSysTimer::Snooze(), Tick, XrdCmsKeyItem::TickMask, Tock, XrdCmsKeyItem::Unload(), XrdSysMutex::UnLock(), and XrdCmsCacheJob.
Referenced by XrdCmsStartTickTock().
| int XrdCmsCache::UnkFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
References DEBUG, EPNAME, XrdCmsKey::Equiv(), XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, XrdCmsSelect::Path, XrdCmsKeyLoc::qfvec, XrdCmsKey::TODRef, XrdSysMutex::UnLock(), and XrdCmsKey::Val.
Referenced by XrdCmsCluster::Locate(), and XrdCmsCluster::Select().
| int XrdCmsCache::WT4File | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
References Add2Q(), XrdCmsKeyLoc::deadline, DEBUG, DLTime, EPNAME, XrdCmsKey::Equiv(), XrdCmsKeyLoc::hfvec, XrdCmsSelect::InfoP, XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsKey::TODRef, XrdSysMutex::UnLock(), XrdCmsKey::Val, and XrdCmsSelect::Write.
Referenced by XrdCmsCluster::Locate(), and XrdCmsCluster::Select().
friend class XrdCmsCacheJob [friend] |
Referenced by TickTock().
unsigned int XrdCmsCache::BClock [private] |
struct { ... } XrdCmsCache::Bhistory[XrdCmsKeyItem::TickRate] [private] |
Referenced by getBVec(), TickTock(), and XrdCmsCache().
int XrdCmsCache::Bhits [private] |
Referenced by getBVec().
int XrdCmsCache::Bmiss [private] |
Referenced by getBVec().
unsigned int XrdCmsCache::Bounced[STMax] [private] |
Referenced by Bounce(), Drop(), getBVec(), and XrdCmsCache().
XrdCmsNash XrdCmsCache::CTable [private] |
int XrdCmsCache::DLTime [private] |
| unsigned int XrdCmsCache::End |
Referenced by getBVec().
XrdSysMutex XrdCmsCache::myMutex [private] |
SMask_t XrdCmsCache::okVec [private] |
Referenced by XrdOlbManager::AddPath(), XrdCmsProtocol::AddPath(), XrdCmsProtocol::Admit(), XrdCmsProtocol::ConfigCheck(), XrdCmsNode::do_Have(), XrdOlbServer::do_PrepSel(), XrdOlbServer::do_Select(), XrdOlbServer::do_StateFWD(), XrdCmsNode::do_StateFWD(), XrdCmsNode::do_StatFS(), Drop(), XrdCmsCluster::Locate(), XrdOlbManager::Login(), XrdOlbServer::Reissue(), XrdCmsProtocol::Reissue(), XrdCmsCluster::Select(), and XrdOlbServer::~XrdOlbServer().
| unsigned int XrdCmsCache::Start |
Referenced by getBVec().
unsigned int XrdCmsCache::Tick [private] |
Referenced by Init(), and TickTock().
unsigned int XrdCmsCache::Tock [private] |
Referenced by AddFile(), and TickTock().
int XrdCmsCache::vecHi [private] |
1.7.1