|
xrootd
|
#include <XrdCmsProtocol.hh>


Public Member Functions | |
| void | DoIt () |
| int | Execute (XrdCmsRRData &Data) |
| XrdProtocol * | Match (XrdLink *lp) |
| int | Process (XrdLink *lp) |
| void | Recycle (XrdLink *lp, int consec, const char *reason) |
| int | Stats (char *buff, int blen, int do_sync=0) |
| XrdCmsProtocol () | |
| ~XrdCmsProtocol () | |
Static Public Member Functions | |
| static XrdCmsProtocol * | Alloc (const char *theRole="", const char *theMan=0, int thePort=0) |
Private Types | |
| enum | Bearing { isDown, isLateral, isUp } |
Private Member Functions | |
| XrdCmsRouting * | Admit () |
| XrdCmsRouting * | Admit_DataServer (int) |
| XrdCmsRouting * | Admit_Redirector (int) |
| XrdCmsRouting * | Admit_Supervisor (int) |
| SMask_t | AddPath (XrdCmsNode *nP, const char *pType, const char *Path) |
| int | Authenticate () |
| void | ConfigCheck (unsigned char *theConfig) |
| const char * | Dispatch (Bearing cDir, int maxWait, int maxTries) |
| XrdCmsRouting * | Login_Failed (const char *Reason) |
| void | Pander (const char *manager, int mport) |
| void | Reissue (XrdCmsRRData &Data) |
| void | Reply_Delay (XrdCmsRRData &Data, kXR_unt32 theDelay) |
| void | Reply_Error (XrdCmsRRData &Data, int ecode, const char *etext) |
Private Attributes | |
| XrdCmsProtocol * | ProtLink |
| XrdCmsRouting * | Routing |
| XrdLink * | Link |
| const char * | myRole |
| const char * | myMan |
| int | myManPort |
| XrdCmsNode * | myNode |
| short | RSlot |
| char | loggedIn |
Static Private Attributes | |
| static XrdSysMutex | ProtMutex |
| static XrdCmsProtocol * | ProtStack = 0 |
| static XrdCmsParser | ProtArgs |
| static const int | maxReqSize = 16384 |
| static int | readWait = 1000 |
Friends | |
| class | XrdCmsJob |
enum XrdCmsProtocol::Bearing [private] |
| XrdCmsProtocol::XrdCmsProtocol | ( | ) | [inline] |
| XrdCmsProtocol::~XrdCmsProtocol | ( | ) | [inline] |
| SMask_t XrdCmsProtocol::AddPath | ( | XrdCmsNode * | nP, |
| const char * | pType, | ||
| const char * | Path | ||
| ) | [private] |
| XrdCmsRouting * XrdCmsProtocol::Admit | ( | ) | [private] |
References EPNAME, XrdCms::CmsLoginData::Mode, XrdCms::Trace, XrdOucTrace::What, TRACE_Debug, XrdCms::CmsState, XrdCmsState::Suspended, XrdCms::CmsLoginData::HoldTime, XrdCms::Config, XrdCmsConfig::LUPHold, XrdCmsLogin::Admit(), XrdCms::CmsLoginData::kYR_director, XrdCmsConfig::asSolo(), XrdCms::CmsLoginData::kYR_manager, XrdCms::CMS_isMan, XrdCms::CmsLoginData::kYR_peer, XrdCms::CMS_isPeer, XrdCms::CmsLoginData::kYR_proxy, XrdCmsConfig::asMetaMan(), XrdCmsRole::Manager, XrdCms::CmsLoginData::kYR_server, XrdCms::CMS_isProxy, XrdCmsRole::Name(), XrdCmsConfig::asProxy(), XrdCmsConfig::asServer(), XrdCms::CmsLoginData::kYR_nostage, XrdCms::CMS_noStage, XrdCms::CmsLoginData::kYR_suspend, XrdCms::CMS_Suspend, XrdCms::CmsLoginData::kYR_trying, XrdCms::Say, XrdSysError::Emsg(), XrdCms::Cluster, XrdCmsCluster::Add(), XrdCms::CmsLoginData::dPort, XrdCms::CmsLoginData::sPort, XrdCms::CmsLoginData::SID, XrdCms::CmsLoginData::kYR_shift, XrdCmsConfig::P_gsdf, DEBUG, XrdCms::CmsLoginData::tSpace, XrdCms::CmsLoginData::fsNum, XrdCms::CmsLoginData::fSpace, XrdCms::CmsLoginData::mSpace, XrdCms::CmsLoginData::fsUtil, XrdCms::Meter, XrdCmsMeter::setVirtUpdt(), XrdCms::CmsLoginData::Paths, XrdOucTokenizer::GetLine(), XrdOucTokenizer::GetToken(), XrdCmsPInfo::rovec, XrdCmsPInfo::ssvec, XrdCms::Cache, XrdCmsCache::Paths, XrdCmsPList_Anchor::Insert(), XrdCmsCluster::ResetRef(), XrdCmsConfig::asManager(), XrdCms::Manager, XrdCmsManager::Reset(), and XrdCms::rspVOps.
| XrdCmsRouting* XrdCmsProtocol::Admit_DataServer | ( | int | ) | [private] |
| XrdCmsRouting * XrdCmsProtocol::Admit_Redirector | ( | int | wasSuspended | ) | [private] |
| XrdCmsRouting* XrdCmsProtocol::Admit_Supervisor | ( | int | ) | [private] |
| XrdCmsProtocol * XrdCmsProtocol::Alloc | ( | const char * | theRole = "", |
| const char * | theMan = 0, |
||
| int | thePort = 0 |
||
| ) | [static] |
References ProtLink, XrdCms::Say, XrdSysError::Emsg(), myRole, myMan, myManPort, and loggedIn.
Referenced by XrdCmsConfig::DoIt(), Match(), and XrdCmsSupervisor::Start().
| int XrdCmsProtocol::Authenticate | ( | ) | [private] |
| void XrdCmsProtocol::ConfigCheck | ( | unsigned char * | theConfig | ) | [private] |
| const char * XrdCmsProtocol::Dispatch | ( | Bearing | cDir, |
| int | maxWait, | ||
| int | maxTries | ||
| ) | [private] |
References EPNAME, XrdCms::kYR_ping, XrdCmsRRData::Objectify(), XrdSysThread::ID(), XrdCmsRRData::Request, ETIMEDOUT, XrdCmsRRData::Dlen, XrdCms::CmsRRHdr::datalen, QTRACE, Debug, XrdCms::CmsRRHdr::rrCode, XrdCms::kYR_pong, DEBUG, XrdCms::Router, XrdCmsRouter::getName(), XrdCms::Say, XrdSysError::Emsg(), XrdCmsRRData::Buff, XrdCmsRRData::Blen, XrdCmsRRData::getBuff(), XrdCmsRRData::Routing, XrdCmsRouting::noArgs, XrdCms::CmsRRHdr::modifier, XrdCms::kYR_raw, XrdCmsRRData::Path, XrdCmsRRData::PathLen, XrdCms::kYR_EINVAL, XrdCmsRRData::Ident, XrdCmsRouting::isSync, ECONNABORTED, XrdCmsJob::Alloc(), XrdCms::Sched, and XrdScheduler::Schedule().
| void XrdCmsProtocol::DoIt | ( | ) | [virtual] |
Implements XrdJob.
| int XrdCmsProtocol::Execute | ( | XrdCmsRRData & | Data | ) |
References EPNAME, XrdCms::Config, XrdCmsConfig::SUPDelay, XrdCms::CmsState, XrdCmsState::Suspended, XrdCmsRRData::Routing, XrdCmsRouting::Delayable, XrdCms::Router, XrdCmsRouter::getMethod(), XrdCmsRRData::Request, XrdCms::CmsRRHdr::rrCode, XrdCms::Say, XrdSysError::Emsg(), DEBUGR, XrdCmsRRData::waitVal, EINPROGRESS, ECONNABORTED, XrdCms::kYR_EINVAL, XrdCmsRouting::Forward, XrdCms::Cluster, XrdCmsCluster::NodeCnt, XrdCms::CmsRRHdr::modifier, and XrdCms::kYR_dnf.
| XrdCmsRouting * XrdCmsProtocol::Login_Failed | ( | const char * | Reason | ) | [private] |
| XrdProtocol * XrdCmsProtocol::Match | ( | XrdLink * | lp | ) | [virtual] |
Implements XrdProtocol.
References XrdLink::Peek(), XrdLink::setEtext(), XrdCms::kYR_login, and Alloc().
| void XrdCmsProtocol::Pander | ( | const char * | manager, |
| int | mport | ||
| ) | [private] |
References EPNAME, Mode, XrdCms::Config, XrdCmsConfig::P_gshr, XrdCms::ManTree, XrdCmsManTree::Register(), XrdCmsConfig::AskPing, DEBUG, XrdCms::CmsLoginData::SID, XrdCmsConfig::mySID, XrdCms::CmsLoginData::Paths, XrdCmsConfig::myPaths, XrdCms::CmsLoginData::sPort, XrdCmsConfig::PortTCP, XrdCms::CmsLoginData::fsNum, XrdCms::Meter, XrdCmsMeter::numFS(), XrdCms::CmsLoginData::tSpace, XrdCmsMeter::TotalSpace(), XrdCms::CmsLoginData::mSpace, XrdCms::CmsLoginData::Version, XrdCms::kYR_Version, XrdCms::CmsLoginData::HoldTime, XrdCms::CmsLoginData::Mode, XrdCms::CmsLoginData::Size, XrdCmsConfig::asManager(), XrdCmsConfig::asServer(), XrdCms::supVOps, XrdCms::manVOps, XrdCmsConfig::asPeer(), XrdCms::srvVOps, XrdCms::CmsLoginData::kYR_peer, XrdCms::CmsLoginData::kYR_manager, XrdCmsConfig::asProxy(), XrdCms::CmsLoginData::kYR_proxy, XrdCms::CmsLoginData::kYR_server, XrdCmsConfig::DiskSS, XrdCmsConfig::doWait, XrdCms::CmsState, XrdCmsState::Suspended, XrdCms::Say, XrdSysError::Emsg(), XrdSysTimer::Snooze(), XrdCmsManTree::Trying(), XrdCmsConfig::NetTCP, XrdInet::Connect(), XRDNET_NOEMSG, XrdCms::myMans, XrdCmsManList::Next(), XrdCms::Manager, XrdCmsManager::Add(), XrdCmsState::NoStaging, XrdCms::CmsLoginData::kYR_nostage, XrdCms::CmsLoginData::fSpace, XrdCmsMeter::FreeSpace(), XrdCms::CmsLoginData::fsUtil, XrdCms::CmsLoginData::dPort, XrdCmsState::Port(), XrdCmsLogin::Login(), XrdCmsManTree::Connect(), XrdCmsManager::Remove(), XrdCms::kYR_redirect, XrdCmsManTree::Disc(), XrdSysDNS::IPAddr(), XrdCmsManList::Del(), and XrdCmsManList::Add().
| int XrdCmsProtocol::Process | ( | XrdLink * | lp | ) | [virtual] |
Implements XrdProtocol.
References XrdCms::Config, XrdCmsConfig::AskPing, XrdLink::setEtext(), XrdLink::Serialize(), XrdCms::RTable, XrdCmsRTable::Del(), XrdCms::Cluster, and XrdCmsCluster::Remove().
| void XrdCmsProtocol::Recycle | ( | XrdLink * | lp, |
| int | consec, | ||
| const char * | reason | ||
| ) | [virtual] |
Implements XrdProtocol.
References XrdCms::Say, XrdSysError::Emsg(), and XrdLink::ID.
| void XrdCmsProtocol::Reissue | ( | XrdCmsRRData & | Data | ) | [private] |
References EPNAME, XrdCmsRRData::Request, XrdCmsRRData::Buff, XrdCmsRRData::Dlen, XrdCms::CmsRRHdr::modifier, XrdCms::kYR_hopincr, XrdCms::kYR_hopcount, XrdCms::Say, XrdSysError::Emsg(), XrdCms::Router, XrdCmsRouter::getName(), XrdCms::CmsRRHdr::rrCode, XrdCmsRRData::Path, XrdCms::CmsRRHdr::streamid, XrdCms::Cache, XrdCmsCache::Paths, XrdCmsPList_Anchor::Find(), XrdCmsPInfo::rwvec, XrdCmsPInfo::rovec, DEBUG, XrdCms::Cluster, and XrdCmsCluster::Broadcast().
| void XrdCmsProtocol::Reply_Delay | ( | XrdCmsRRData & | Data, |
| kXR_unt32 | theDelay | ||
| ) | [private] |
| void XrdCmsProtocol::Reply_Error | ( | XrdCmsRRData & | Data, |
| int | ecode, | ||
| const char * | etext | ||
| ) | [private] |
| int XrdCmsProtocol::Stats | ( | char * | buff, |
| int | blen, | ||
| int | do_sync = 0 |
||
| ) | [virtual] |
Implements XrdProtocol.
References XrdCms::Config, XrdCmsConfig::asManager(), XrdCms::Cluster, XrdCmsCluster::Statt(), and XrdCmsCluster::Stats().
friend class XrdCmsJob [friend] |
XrdLink* XrdCmsProtocol::Link [private] |
Referenced by XrdCmsJob::Alloc().
char XrdCmsProtocol::loggedIn [private] |
Referenced by Alloc().
const int XrdCmsProtocol::maxReqSize = 16384 [static, private] |
const char* XrdCmsProtocol::myMan [private] |
Referenced by Alloc().
int XrdCmsProtocol::myManPort [private] |
Referenced by Alloc().
XrdCmsNode* XrdCmsProtocol::myNode [private] |
const char* XrdCmsProtocol::myRole [private] |
Referenced by XrdCmsJob::Alloc(), and Alloc().
XrdCmsParser XrdCmsProtocol::ProtArgs [static, private] |
XrdCmsProtocol* XrdCmsProtocol::ProtLink [private] |
Referenced by Alloc().
XrdSysMutex XrdCmsProtocol::ProtMutex [static, private] |
XrdCmsProtocol * XrdCmsProtocol::ProtStack = 0 [static, private] |
int XrdCmsProtocol::readWait = 1000 [static, private] |
XrdCmsRouting* XrdCmsProtocol::Routing [private] |
short XrdCmsProtocol::RSlot [private] |
1.7.5