#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 |
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 |
Definition at line 26 of file XrdCmsCache.hh.
| XrdCmsCache::XrdCmsCache | ( | ) | [inline] |
| XrdCmsCache::~XrdCmsCache | ( | ) | [inline] |
Definition at line 68 of file XrdCmsCache.hh.
| int XrdCmsCache::AddFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
Definition at line 103 of file XrdCmsCache.cc.
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, XrdSysMutex::UnLock(), and XrdCmsSelect::Write.
Referenced by XrdCmsNode::do_Have(), XrdCmsNode::do_StateFWD(), XrdCmsCluster::Locate(), XrdCmsCluster::Select(), and XrdCmsCluster::SelNode().
| int XrdCmsCache::DelFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
Definition at line 175 of file XrdCmsCache.cc.
References XrdCmsSelect::Advisory, CTable, XrdSysError::Emsg(), XrdCmsNash::Find(), XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), myMutex, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsKeyLoc::pfvec, XrdCmsNash::Recycle(), XrdFrm::Say(), XrdCmsKeyItem::Unload(), XrdSysMutex::UnLock(), and XrdCmsKey::Val.
Referenced by XrdCmsNode::do_Gone(), XrdCmsNode::do_Mv(), XrdCmsNode::do_Rm(), and XrdCmsNode::do_Rmdir().
| int XrdCmsCache::GetFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
Definition at line 214 of file XrdCmsCache.cc.
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 XrdCmsNode::do_StateFWD(), XrdCmsCluster::Locate(), and XrdCmsCluster::Select().
| int XrdCmsCache::UnkFile | ( | XrdCmsSelect & | Sel, | |
| SMask_t | mask | |||
| ) |
Definition at line 255 of file XrdCmsCache.cc.
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 | |||
| ) |
Definition at line 283 of file XrdCmsCache.cc.
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().
| void XrdCmsCache::Bounce | ( | SMask_t | smask, | |
| int | SNum | |||
| ) |
Definition at line 320 of file XrdCmsCache.cc.
References BClock, Bounced, XrdSysMutex::Lock(), myMutex, okVec, XrdSysMutex::UnLock(), and vecHi.
Referenced by XrdCmsProtocol::ConfigCheck(), and XrdCmsNode::do_Status().
| void XrdCmsCache::Drop | ( | SMask_t | mask, | |
| int | SNum, | |||
| int | xHi | |||
| ) |
Definition at line 336 of file XrdCmsCache.cc.
References Bounced, XrdSysMutex::Lock(), myMutex, okVec, Paths, XrdCmsPList_Anchor::Remove(), XrdSysMutex::UnLock(), and vecHi.
Referenced by XrdCmsCluster::Drop().
| int XrdCmsCache::Init | ( | int | fxHold, | |
| int | fxDelay | |||
| ) |
Definition at line 357 of file XrdCmsCache.cc.
References XrdCmsKeyItem::Alloc(), DLTime, XrdSysError::Emsg(), XrdCmsKeyItem::Recycle(), XrdSysThread::Run(), XrdFrm::Say(), Tick, XrdCmsKeyItem::TickRate, XrdCmsKeyItem::Unload(), and XrdCmsStartTickTock().
Referenced by XrdCmsConfig::Configure2().
| void * XrdCmsCache::TickTock | ( | ) |
Definition at line 390 of file XrdCmsCache.cc.
References Bhistory, XrdSysMutex::Lock(), myMutex, XrdCms::Sched, XrdScheduler::Schedule(), XrdSysTimer::Snooze(), Tick, XrdCmsKeyItem::TickMask, Tock, XrdCmsKeyItem::Unload(), XrdSysMutex::UnLock(), and XrdCmsCacheJob.
Referenced by XrdCmsStartTickTock().
| void XrdCmsCache::Add2Q | ( | XrdCmsRRQInfo * | Info, | |
| XrdCmsKeyItem * | cp, | |||
| int | isrw | |||
| ) | [private] |
Definition at line 417 of file XrdCmsCache.cc.
References XrdCmsRRQ::Add(), Info, XrdCmsKeyItem::Loc, XrdCmsKeyLoc::roPend, XrdCms::RRQ, and XrdCmsKeyLoc::rwPend.
Referenced by WT4File().
| void XrdCmsCache::Dispatch | ( | XrdCmsKeyItem * | cinfo, | |
| short | roQ, | |||
| short | rwQ | |||
| ) | [private] |
Definition at line 434 of file XrdCmsCache.cc.
References XrdCmsKeyLoc::hfvec, XrdCmsKeyItem::Loc, XrdCmsKeyLoc::pfvec, XrdCmsRRQ::Ready(), XrdCmsKeyLoc::roPend, XrdCms::RRQ, and XrdCmsKeyLoc::rwPend.
Referenced by AddFile().
| SMask_t XrdCmsCache::getBVec | ( | unsigned int | todA, | |
| unsigned int & | todB | |||
| ) | [private] |
| void XrdCmsCache::Recycle | ( | XrdCmsKeyItem * | theList | ) | [private] |
Definition at line 480 of file XrdCmsCache.cc.
References CTable, XrdCmsRRQ::Del(), XrdSysError::Emsg(), XrdCmsKeyItem::Key, XrdCmsKeyItem::Loc, XrdSysMutex::Lock(), XrdCmsKeyItem::minAlloc, XrdCmsKeyItem::minFree, myMutex, XrdCmsNash::Recycle(), XrdCmsKeyItem::Replenish(), XrdCmsKeyLoc::roPend, XrdCms::RRQ, XrdCmsKeyLoc::rwPend, XrdFrm::Say(), sprintf(), XrdCmsKeyItem::Stats(), XrdCmsKey::TODRef, and XrdSysMutex::UnLock().
Referenced by XrdCmsCacheJob::DoIt().
friend class XrdCmsCacheJob [friend] |
Definition at line 31 of file XrdCmsCache.hh.
Referenced by XrdCmsProtocol::AddPath(), XrdCmsProtocol::Admit(), XrdCmsProtocol::ConfigCheck(), XrdCmsNode::do_Have(), XrdCmsNode::do_StateFWD(), XrdCmsNode::do_StatFS(), Drop(), XrdCmsCluster::Locate(), XrdCmsProtocol::Reissue(), and XrdCmsCluster::Select().
SMask_t XrdCmsCache::Vec [private] |
Definition at line 77 of file XrdCmsCache.hh.
unsigned int XrdCmsCache::Start [private] |
unsigned int XrdCmsCache::End [private] |
struct { ... } XrdCmsCache::Bhistory[XrdCmsKeyItem::TickRate] [private] |
Referenced by getBVec(), TickTock(), and XrdCmsCache().
XrdSysMutex XrdCmsCache::myMutex [private] |
XrdCmsNash XrdCmsCache::CTable [private] |
unsigned int XrdCmsCache::Bounced[STMax] [private] |
Definition at line 84 of file XrdCmsCache.hh.
Referenced by Bounce(), Drop(), getBVec(), and XrdCmsCache().
SMask_t XrdCmsCache::okVec [private] |
unsigned int XrdCmsCache::Tick [private] |
unsigned int XrdCmsCache::Tock [private] |
unsigned int XrdCmsCache::BClock [private] |
int XrdCmsCache::DLTime [private] |
int XrdCmsCache::Bhits [private] |
int XrdCmsCache::Bmiss [private] |
int XrdCmsCache::vecHi [private] |
1.5.1