![]() |
XRootD
|
#include <XrdCmsCluster.hh>
Public Types | |
enum | CmsLSOpts { LS_NULL =0 , LS_IPO =0x0100 , LS_IDNT =0x0200 , LS_ANY =0x0400 , LS_IFMASK = 0x0f } |
Public Member Functions | |
XrdCmsCluster () | |
virtual | ~XrdCmsCluster () |
XrdCmsNode * | Add (XrdLink *lp, int dport, int Status, int sport, const char *theNID, const char *theIF) |
virtual void | BlackList (XrdOucTList *blP) |
SMask_t | Broadcast (SMask_t smask, XrdCms::CmsRRHdr &Hdr, char *Data, int Dlen=0) |
SMask_t | Broadcast (SMask_t smask, XrdCms::CmsRRHdr &Hdr, void *Data, int Dlen) |
SMask_t | Broadcast (SMask_t, const struct iovec *, int, int tot=0) |
int | Broadsend (SMask_t smask, XrdCms::CmsRRHdr &Hdr, void *Data, int Dlen) |
SMask_t | getMask (const char *Cid) |
SMask_t | getMask (const XrdNetAddr *addr) |
XrdCmsSelected * | List (SMask_t mask, CmsLSOpts opts, bool &oksel) |
int | Locate (XrdCmsSelect &Sel) |
void * | MonPerf () |
void * | MonRefs () |
long long | Refs () |
void | Remove (const char *reason, XrdCmsNode *theNode, int immed=0) |
void | Remove (XrdCmsNode *theNode) |
void | ResetRef (SMask_t smask, bool isLocked=false) |
int | Select (SMask_t pmask, int &port, char *hbuff, int &hlen, int isrw, int isMulti, int ifWant) |
int | Select (XrdCmsSelect &Sel) |
void | SLock (bool dolock, bool wrmode=true) |
void | Space (XrdCms::SpaceData &sData, SMask_t smask) |
int | Stats (char *bfr, int bln) |
int | Statt (char *bfr, int bln) |
Public Attributes | |
int | NodeCnt |
Static Public Attributes | |
static const int | EReplete = -4 |
static const int | NotFound = -1 |
static const int | RetryErr = -3 |
static const int | Wait4CBk = -2 |
Friends | |
class | XrdCmsDrop |
Definition at line 114 of file XrdCmsCluster.hh.
XrdCmsCluster::XrdCmsCluster | ( | ) |
Definition at line 109 of file XrdCmsCluster.cc.
|
inlinevirtual |
Definition at line 218 of file XrdCmsCluster.hh.
XrdCmsNode * XrdCmsCluster::Add | ( | XrdLink * | lp, |
int | dport, | ||
int | Status, | ||
int | sport, | ||
const char * | theNID, | ||
const char * | theIF | ||
) |
Definition at line 128 of file XrdCmsCluster.cc.
References XrdCmsClustID::AddID(), XrdCmsClustID::AddNode(), XrdCmsConfig::asManager(), XrdCms::CMS_isMan, XrdCms::CMS_isPeer, XrdCms::CMS_isSuper, XrdCms::CMS_noStage, XrdCms::CMS_Suspend, XrdCms::CmsState, XrdCms::Config, XrdCmsState::Counts, DEBUG, Macaroons::Debug, XrdSysError::Emsg(), EPNAME, XrdCmsClustID::Find(), XrdLink::ID, XrdCmsNode::Ident, XrdCmsNode::isBad, XrdCmsNode::isBound, XrdCmsNode::isConn, XrdCmsNode::isDisabled, XrdCmsClustID::IsEmpty(), XrdCmsNode::isMan, XrdCmsNode::isNoStage, XrdCmsNode::isOffline, XrdCmsNode::isPeer, XrdCmsNode::isPerm, XrdCmsNode::isSuspend, XrdCmsNode::Lock(), QTRACE, XrdCms::Say, XrdCmsState::Set(), XrdCmsNode::setName(), STMax, XrdCmsConfig::SUPCount, XrdCmsConfig::SUPLevel, and XrdCmsState::Update().
|
virtual |
Definition at line 330 of file XrdCmsCluster.cc.
References XrdSysError::Emsg(), XrdCmsNode::g2nLock(), XrdCmsNode::isBad, XrdCmsNode::isBlisted, XrdCmsNode::isDoomed, XrdCms::kYR_disc, XrdCms::kYR_Version, XrdCmsNode::n2gLock(), XrdCmsNode::Name(), XrdCmsBlackList::Present(), XrdCms::Say, and XrdCmsNode::Send().
Referenced by XrdCmsBlackList::DoIt().
SMask_t XrdCmsCluster::Broadcast | ( | SMask_t | smask, |
XrdCms::CmsRRHdr & | Hdr, | ||
char * | Data, | ||
int | Dlen = 0 |
||
) |
Definition at line 411 of file XrdCmsCluster.cc.
References XrdCms::CmsRRHdr::datalen, and XrdOucPup::Pack().
SMask_t XrdCmsCluster::Broadcast | ( | SMask_t | smask, |
XrdCms::CmsRRHdr & | Hdr, | ||
void * | Data, | ||
int | Dlen | ||
) |
SMask_t XrdCmsCluster::Broadcast | ( | SMask_t | smask, |
const struct iovec * | iod, | ||
int | iovcnt, | ||
int | tot = 0 |
||
) |
Definition at line 374 of file XrdCmsCluster.cc.
References DEBUG, EPNAME, XrdCmsNode::Ident, XrdCmsNode::isNode(), XrdCmsNode::isOffline, XrdCmsNode::Mask(), XrdCmsNode::Ref(), XrdCmsNode::Send(), and XrdCmsNode::unRef().
Referenced by XrdCmsNode::do_StateFWD(), Locate(), and Select().
int XrdCmsCluster::Broadsend | ( | SMask_t | smask, |
XrdCms::CmsRRHdr & | Hdr, | ||
void * | Data, | ||
int | Dlen | ||
) |
Definition at line 450 of file XrdCmsCluster.cc.
References XrdCms::CmsRRHdr::datalen, DEBUG, EPNAME, XrdCmsNode::Ident, XrdCmsNode::isNode(), XrdCmsNode::isOffline, XrdCmsNode::Ref(), XrdCmsNode::Send(), and XrdCmsNode::unRef().
Referenced by XrdCmsNode::do_StateFWD().
SMask_t XrdCmsCluster::getMask | ( | const char * | Cid | ) |
Definition at line 524 of file XrdCmsCluster.cc.
References XrdCmsClustID::Mask().
SMask_t XrdCmsCluster::getMask | ( | const XrdNetAddr * | addr | ) |
Definition at line 500 of file XrdCmsCluster.cc.
References XrdCmsNode::isNode().
Referenced by XrdCmsNode::do_SelAvoid().
XrdCmsSelected * XrdCmsCluster::List | ( | SMask_t | mask, |
CmsLSOpts | opts, | ||
bool & | oksel | ||
) |
Definition at line 533 of file XrdCmsCluster.cc.
References XrdCmsSelected::Disable, XrdNetIF::GetPublicDest(), XrdNetIF::HasDest(), XrdCmsSelected::IdentSize, if(), XrdCmsNode::isBad, XrdCmsNode::isBlisted, XrdCmsNode::isDisabled, XrdCmsNode::isMan, XrdCmsSelected::isMangr, XrdCmsNode::isNoStage, XrdCmsNode::isOffline, XrdCmsNode::isRW, XrdCmsSelected::isRW, XrdCmsNode::isSuspend, XrdCmsSelected::NoStage, XrdCmsSelected::Offline, opts, XrdNetIF::Port(), XrdNetIF::PrivateIF, XrdCmsNode::RoleID, and XrdCmsSelected::Suspend.
Referenced by XrdCmsNode::do_Locate().
int XrdCmsCluster::Locate | ( | XrdCmsSelect & | Sel | ) |
Definition at line 595 of file XrdCmsCluster.cc.
References XrdCmsCache::AddFile(), XrdCmsSelect::Asap, XrdCms::baseFS, Broadcast(), XrdCms::Cache, XrdCms::Cluster, XrdCms::Config, EPNAME, XrdCmsPList_Anchor::Find(), XrdCmsCache::GetFile(), XrdCmsKey::Hash, XrdCms::CmsStateRequest::Hdr, XrdCmsSelect::InfoP, XrdCmsBaseFS::isDFS(), XrdCmsRRQInfo::isLU, XrdCms::kYR_raw, XrdCms::CmsStateRequest::kYR_refresh, XrdCms::kYR_state, XrdCmsKey::Len, XrdCmsConfig::LUPDelay, XrdCms::CmsRRHdr::modifier, XrdCmsSelect::Online, XrdCmsSelect::Opts, XrdCmsSelect::Path, Path, XrdCmsCache::Paths, XrdCmsSelect::Refresh, XrdCmsSelect::Resp, XrdCmsPInfo::rovec, XrdCmsPInfo::rwvec, XrdCmsRRQInfo::rwVec, XrdCmsPInfo::ssvec, TRACE, XrdCmsCache::UnkFile(), XrdCmsKey::Val, XrdCmsSelect::Vec, and XrdCmsCache::WT4File().
Referenced by XrdCmsNode::do_Locate().
void * XrdCmsCluster::MonPerf | ( | ) |
Definition at line 684 of file XrdCmsCluster.cc.
References XrdCmsConfig::AskPerf, XrdCmsConfig::AskPing, XrdCms::Config, XrdCms::kYR_usage, XrdSysTimer::Snooze(), and Usage().
Referenced by XrdCmsStartMonPerf().
void * XrdCmsCluster::MonRefs | ( | ) |
Definition at line 706 of file XrdCmsCluster.cc.
References XrdCms::Config, XrdCmsConfig::RefReset, XrdCmsConfig::RefTurn, and XrdSysTimer::Snooze().
Referenced by XrdCmsStartMonRefs().
|
inline |
Definition at line 174 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_Load().
void XrdCmsCluster::Remove | ( | const char * | reason, |
XrdCmsNode * | theNode, | ||
int | immed = 0 |
||
) |
Definition at line 765 of file XrdCmsCluster.cc.
References XrdCmsConfig::asManager(), XrdCms::CmsState, XrdCms::Config, XrdCmsState::Counts, DEBUG, XrdCmsNode::Disc(), XrdCmsConfig::DRPDelay, XrdSysError::Emsg(), EPNAME, XrdCmsNode::ID(), XrdCmsNode::Ident, XrdCmsNode::isBad, XrdCmsNode::isBound, XrdCmsNode::isConn, XrdCmsNode::isDoomed, XrdCmsNode::isGone, XrdCmsNode::isMan, XrdCmsNode::isNoStage, XrdCmsNode::isOffline, XrdCmsClustID::IsSingle(), XrdCmsNode::isSuspend, XrdCmsNode::Lock(), XrdCmsDrop::nodeInst, XrdCmsNode::Ref(), XrdCmsClustID::RemNode(), XrdCms::Say, strlcpy(), XrdCmsNode::UnLock(), XrdSysRWLock::UnLock(), XrdCmsNode::unRef(), XrdCmsState::Update(), and XrdSysRWLock::WriteLock().
void XrdCmsCluster::Remove | ( | XrdCmsNode * | theNode | ) |
Definition at line 754 of file XrdCmsCluster.cc.
Referenced by XrdCmsProtocol::Process().
void XrdCmsCluster::ResetRef | ( | SMask_t | smask, |
bool | isLocked = false |
||
) |
Definition at line 901 of file XrdCmsCluster.cc.
References XrdCmsNode::isNode().
int XrdCmsCluster::Select | ( | SMask_t | pmask, |
int & | port, | ||
char * | hbuff, | ||
int & | hlen, | ||
int | isrw, | ||
int | isMulti, | ||
int | ifWant | ||
) |
Definition at line 1086 of file XrdCmsCluster.cc.
References XrdCms::baseFS, XrdCms::Config, XrdCmsNode::DiskFree, XrdCmsNode::DiskMinF, XrdNetIF::GetPublicName(), XrdCmsNode::hasNet, XrdCmsNode::isBad, XrdCmsBaseFS::isDFS(), XrdCmsNode::isNoStage, XrdNetIF::Mask(), XrdCmsConfig::MaxLoad, XrdCmsSelector::needNet, XrdCmsSelector::needSpace, XrdCmsConfig::sched_LoadR, XrdCmsConfig::sched_RR, and XrdCmsSelector::selPack.
int XrdCmsCluster::Select | ( | XrdCmsSelect & | Sel | ) |
Definition at line 930 of file XrdCmsCluster.cc.
References XrdCmsCache::AddFile(), XrdCms::baseFS, Broadcast(), XrdCms::Cache, XrdCms::Cluster, XrdCms::Config, XrdCmsSelect::Create, XrdCmsSelect::Defer, XrdCmsBaseFS::dfsTries(), EPNAME, XrdCmsPList_Anchor::Find(), XrdCmsConfig::forceRO, XrdCmsSelect::Freshen, XrdCmsCache::GetFile(), XrdCmsKey::Hash, XrdCms::CmsStateRequest::Hdr, if(), XrdCmsBaseFS::isDFS(), XrdCmsSelect::isMeta, XrdCms::kYR_ENOENT, XrdCms::CmsStateRequest::kYR_noresp, XrdCms::kYR_raw, XrdCms::CmsStateRequest::kYR_refresh, XrdCms::kYR_state, XrdCmsKey::Len, XrdCmsConfig::LUPDelay, XrdCms::CmsRRHdr::modifier, XrdCmsSelect::MWFiles, XrdCmsSelect::NewFile, XrdCmsSelect::nmask, XrdCmsSelect::NoTryLim, XrdCmsSelect::Online, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsCache::Paths, XrdCmsSelect::Refresh, XrdCmsSelect::Replica, XrdCmsSelect::Resp, XrdCmsPInfo::rovec, XrdCmsConfig::RWDelay, XrdCmsPInfo::rwvec, XrdCmsPInfo::ssvec, XrdCmsBaseFS::stgTries(), TRACE, XrdCmsBaseFS::Trim(), XrdCmsSelect::Trunc, XrdCmsCache::UnkFile(), XrdCmsKey::Val, XrdCmsSelect::Vec, XrdCmsSelect::Write, and XrdCmsCache::WT4File().
Referenced by XrdCmsNode::do_Mv(), XrdCmsNode::do_Select(), and XrdCmsNode::do_SelPrep().
|
inline |
Definition at line 200 of file XrdCmsCluster.hh.
References XrdSysRWLock::ReadLock(), XrdSysRWLock::UnLock(), and XrdSysRWLock::WriteLock().
Referenced by XrdCmsNode::do_Status(), and XrdCmsProtocol::Process().
void XrdCmsCluster::Space | ( | XrdCms::SpaceData & | sData, |
SMask_t | smask | ||
) |
Definition at line 1215 of file XrdCmsCluster.cc.
References XrdCmsNode::allowsRW, XrdCmsNode::allowsSS, XrdCms::baseFS, XrdCmsNode::DiskFree, XrdCmsNode::DiskMinF, XrdCmsNode::DiskTotal, XrdCmsNode::DiskUtil, XrdCmsBaseFS::isDFS(), XrdCmsNode::isNode(), XrdCmsNode::isOffline, XrdCmsNode::isRW, XrdCms::SpaceData::sFree, XrdCms::SpaceData::sNum, XrdCms::SpaceData::sUtil, XrdCms::SpaceData::Total, XrdCms::SpaceData::TotFr, XrdCms::SpaceData::wFree, XrdCms::SpaceData::wMinF, XrdCms::SpaceData::wNum, and XrdCms::SpaceData::wUtil.
Referenced by XrdCmsNode::do_StatFS().
int XrdCmsCluster::Stats | ( | char * | bfr, |
int | bln | ||
) |
Definition at line 1255 of file XrdCmsCluster.cc.
References XrdCms::Config, and XrdCmsConfig::myRType.
Referenced by XrdCmsNode::do_Stats(), and XrdCmsProtocol::Stats().
int XrdCmsCluster::Statt | ( | char * | bfr, |
int | bln | ||
) |
Definition at line 1277 of file XrdCmsCluster.cc.
References XrdCmsRRQ::Info::Add2Q, XrdCmsConfig::asMetaMan(), XrdCms::Config, XrdCmsSelected::Disable, FULLMASK, XrdCmsSelected::Ident, XrdCmsSelected::isRW, XrdCl::List(), XrdCmsRRQ::Info::luFast, XrdCmsRRQ::Info::luSlow, XrdCmsRRQ::Info::Multi, XrdCmsConfig::myRType, XrdCmsSelected::next, XrdCmsSelected::NoStage, XrdCmsSelected::Offline, XrdCmsRRQ::Info::PBack, XrdCmsRRQ::Info::rdFast, XrdCmsRRQ::Info::rdSlow, XrdCmsSelected::RefTotR, XrdCmsSelected::RefTotW, XrdCmsConfig::RepStat_frq, XrdCmsConfig::RepStat_shr, XrdCmsConfig::RepStats, XrdCmsRRQ::Info::Resp, XrdCmsSelected::RoleID, XrdCms::RRQ, XrdCmsSelected::Share, XrdCmsSelected::Shrin, stat(), XrdCmsRRQ::Statistics(), XrdCmsSelected::Status, STMax, XrdCmsSelected::Suspend, and XrdCmsRole::Type().
Referenced by XrdCmsProtocol::Stats().
|
friend |
Definition at line 117 of file XrdCmsCluster.hh.
|
static |
Definition at line 191 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_SelAvoid(), and XrdCmsNode::do_Select().
int XrdCmsCluster::NodeCnt |
Definition at line 119 of file XrdCmsCluster.hh.
Referenced by XrdCmsProtocol::Execute().
|
static |
Definition at line 188 of file XrdCmsCluster.hh.
|
static |
Definition at line 190 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_Select().
|
static |
Definition at line 189 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_Locate().