#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] |