#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.
References NodeCnt.
|
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(), XrdCms::CMS_isMan, XrdCms::CMS_isPeer, XrdCms::CMS_isSuper, XrdCms::CMS_noStage, XrdCms::CMS_Suspend, XrdCms::CmsState, XrdCms::Config, XrdCmsState::Counts, DEBUG, Debug, 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(), NodeCnt, QTRACE, Remove(), XrdCms::Say, XrdCmsNode::setName(), and STMax.
|
virtual |
Definition at line 330 of file XrdCmsCluster.cc.
References XrdCmsNode::g2nLock(), XrdCmsNode::isBad, XrdCmsNode::isBlisted, XrdCmsNode::isDoomed, XrdCms::kYR_disc, XrdCms::kYR_Version, XrdCmsNode::n2gLock(), XrdCmsNode::Name(), XrdCmsBlackList::Present(), XrdCms::Say, XrdCmsNode::Send(), and XrdCmsNode::UnLock().
| SMask_t XrdCmsCluster::Broadcast | ( | SMask_t | smask, |
| XrdCms::CmsRRHdr & | Hdr, | ||
| char * | Data, | ||
| int | Dlen = 0 ) |
Definition at line 411 of file XrdCmsCluster.cc.
References Broadcast(), XrdCms::CmsRRHdr::datalen, and XrdOucPup::Pack().
| SMask_t XrdCmsCluster::Broadcast | ( | SMask_t | smask, |
| XrdCms::CmsRRHdr & | Hdr, | ||
| void * | Data, | ||
| int | Dlen ) |
Definition at line 432 of file XrdCmsCluster.cc.
References Broadcast(), and XrdCms::CmsRRHdr::datalen.
| 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 Broadcast(), Broadcast(), and MonPerf().
| 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().
| 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().
| XrdCmsSelected * XrdCmsCluster::List | ( | SMask_t | mask, |
| CmsLSOpts | opts, | ||
| bool & | oksel ) |
Definition at line 533 of file XrdCmsCluster.cc.
References XrdCmsSelected::Disable, XrdNetIF::GetDest(), XrdNetIF::HasDest(), XrdCmsSelected::IdentSize, XrdCmsNode::isBad, XrdCmsNode::isBlisted, XrdCmsNode::isDisabled, XrdCmsNode::isMan, XrdCmsSelected::isMangr, XrdCmsNode::isNoStage, XrdCmsNode::isOffline, XrdCmsNode::isRW, XrdCmsSelected::isRW, XrdCmsNode::isSuspend, LS_ANY, LS_IDNT, LS_IFMASK, LS_IPO, XrdCmsSelected::NoStage, XrdCmsSelected::Offline, opts, XrdNetIF::Port(), XrdNetIF::PrivateIF, XrdCmsNode::RoleID, and XrdCmsSelected::Suspend.
Referenced by Statt().
| int XrdCmsCluster::Locate | ( | XrdCmsSelect & | Sel | ) |
Definition at line 596 of file XrdCmsCluster.cc.
References XrdCmsSelect::Asap, XrdCms::baseFS, XrdCms::Cache, XrdCms::Cluster, XrdCms::Config, EPNAME, XrdCmsKey::Hash, XrdCms::CmsStateRequest::Hdr, XrdCmsSelect::InfoP, XrdCmsRRQInfo::isLU, XrdCms::kYR_raw, XrdCms::CmsStateRequest::kYR_refresh, XrdCms::kYR_state, XrdCmsKey::Len, XrdCms::CmsRRHdr::modifier, NotFound, XrdCmsSelect::Online, XrdCmsSelect::Opts, Path, XrdCmsSelect::Path, XrdCmsSelect::Refresh, XrdCmsSelect::Resp, XrdCmsPInfo::rovec, XrdCmsRRQInfo::rwVec, XrdCmsPInfo::rwvec, XrdCmsPInfo::ssvec, TRACE, XrdCmsKey::Val, XrdCmsSelect::Vec, and Wait4CBk.
| void * XrdCmsCluster::MonPerf | ( | ) |
Definition at line 685 of file XrdCmsCluster.cc.
References Broadcast(), XrdCms::Config, XrdCms::kYR_usage, XrdSysTimer::Snooze(), and Usage().
| void * XrdCmsCluster::MonRefs | ( | ) |
Definition at line 707 of file XrdCmsCluster.cc.
References XrdCms::Config, ResetRef(), and XrdSysTimer::Snooze().
|
inline |
Definition at line 174 of file XrdCmsCluster.hh.
| void XrdCmsCluster::Remove | ( | const char * | reason, |
| XrdCmsNode * | theNode, | ||
| int | immed = 0 ) |
Definition at line 766 of file XrdCmsCluster.cc.
References XrdCms::CmsState, XrdCms::Config, XrdCmsState::Counts, DEBUG, XrdCmsNode::Disc(), 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(), NodeCnt, XrdCmsDrop::nodeInst, XrdCmsNode::Ref(), XrdCmsClustID::RemNode(), XrdCms::Say, strlcpy(), XrdCmsNode::UnLock(), XrdSysRWLock::UnLock(), XrdCmsNode::unRef(), XrdSysRWLock::WriteLock(), and XrdCmsDrop.
| void XrdCmsCluster::Remove | ( | XrdCmsNode * | theNode | ) |
Definition at line 755 of file XrdCmsCluster.cc.
References XrdCmsDrop.
Referenced by Add().
| void XrdCmsCluster::ResetRef | ( | SMask_t | smask, |
| bool | isLocked = false ) |
Definition at line 902 of file XrdCmsCluster.cc.
References XrdCmsNode::isNode().
Referenced by MonRefs().
| int XrdCmsCluster::Select | ( | SMask_t | pmask, |
| int & | port, | ||
| char * | hbuff, | ||
| int & | hlen, | ||
| int | isrw, | ||
| int | isMulti, | ||
| int | ifWant ) |
Definition at line 1088 of file XrdCmsCluster.cc.
References XrdCms::baseFS, XrdCms::Config, XrdCmsNode::DiskFree, XrdCmsNode::DiskMinF, XrdNetIF::GetName(), XrdCmsNode::hasNet, XrdCmsNode::isBad, XrdCmsNode::isNoStage, XrdNetIF::Mask(), XrdCmsSelector::needNet, XrdCmsSelector::needSpace, and XrdCmsSelector::selPack.
| int XrdCmsCluster::Select | ( | XrdCmsSelect & | Sel | ) |
Definition at line 931 of file XrdCmsCluster.cc.
References XrdCms::baseFS, XrdCms::Cache, XrdCms::Cluster, XrdCms::Config, XrdCmsSelect::Create, XrdCmsSelect::Defer, EPNAME, EReplete, XrdCmsSelect::Freshen, XrdCmsKey::Hash, XrdCms::CmsStateRequest::Hdr, XrdCmsSelect::isMeta, XrdCms::kYR_ENOENT, XrdCms::CmsStateRequest::kYR_noresp, XrdCms::kYR_raw, XrdCms::CmsStateRequest::kYR_refresh, XrdCms::kYR_state, XrdCmsKey::Len, XrdCms::CmsRRHdr::modifier, XrdCmsSelect::MWFiles, XrdCmsSelect::NewFile, XrdCmsSelect::nmask, XrdCmsSelect::NoTryLim, XrdCmsSelect::Online, XrdCmsSelect::Opts, XrdCmsSelect::Path, XrdCmsSelect::Refresh, XrdCmsSelect::Replica, XrdCmsSelect::Resp, RetryErr, XrdCmsPInfo::rovec, XrdCmsPInfo::rwvec, XrdCmsPInfo::ssvec, TRACE, XrdCmsSelect::Trunc, XrdCmsKey::Val, XrdCmsSelect::Vec, and XrdCmsSelect::Write.
|
inline |
Definition at line 200 of file XrdCmsCluster.hh.
| void XrdCmsCluster::Space | ( | XrdCms::SpaceData & | sData, |
| SMask_t | smask ) |
Definition at line 1217 of file XrdCmsCluster.cc.
References XrdCmsNode::allowsRW, XrdCmsNode::allowsSS, XrdCms::baseFS, XrdCmsNode::DiskFree, XrdCmsNode::DiskMinF, XrdCmsNode::DiskTotal, XrdCmsNode::DiskUtil, 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.
| int XrdCmsCluster::Stats | ( | char * | bfr, |
| int | bln ) |
Definition at line 1257 of file XrdCmsCluster.cc.
References XrdCms::Config.
| int XrdCmsCluster::Statt | ( | char * | bfr, |
| int | bln ) |
Definition at line 1279 of file XrdCmsCluster.cc.
References XrdCmsRRQ::Info::Add2Q, XrdCms::Config, XrdCmsSelected::Disable, FULLMASK, XrdCmsSelected::Ident, XrdCmsSelected::isRW, List(), LS_NULL, XrdCmsRRQ::Info::luFast, XrdCmsRRQ::Info::luSlow, XrdCmsRRQ::Info::Multi, 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, XrdCmsRRQ::Info::Resp, XrdCmsSelected::RoleID, XrdCms::RRQ, XrdCmsSelected::Share, XrdCmsSelected::Shrin, stat, XrdCmsSelected::Status, STMax, XrdCmsSelected::Suspend, and XrdCmsRole::Type().
|
friend |
Definition at line 117 of file XrdCmsCluster.hh.
References XrdCmsDrop.
Referenced by Remove(), Remove(), and XrdCmsDrop.
|
static |
Definition at line 191 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_SelAvoid(), XrdCmsNode::do_Select(), and Select().
| int XrdCmsCluster::NodeCnt |
Definition at line 119 of file XrdCmsCluster.hh.
Referenced by XrdCmsCluster(), Add(), and Remove().
|
static |
Definition at line 188 of file XrdCmsCluster.hh.
Referenced by Locate().
|
static |
Definition at line 190 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_Select(), and Select().
|
static |
Definition at line 189 of file XrdCmsCluster.hh.
Referenced by XrdCmsNode::do_Locate(), and Locate().