XrdCmsProtocol Class Reference

#include <XrdCmsProtocol.hh>

Inheritance diagram for XrdCmsProtocol:

XrdProtocol XrdJob List of all members.

Public Member Functions

void DoIt ()
int Execute (XrdCmsRRData &Data)
XrdProtocolMatch (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 XrdCmsProtocolAlloc (const char *theRole="", const char *theMan=0, int thePort=0)

Private Types

enum  Bearing

Private Member Functions

XrdCmsRoutingAdmit ()
XrdCmsRoutingAdmit_DataServer (int)
XrdCmsRoutingAdmit_Redirector (int)
XrdCmsRoutingAdmit_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)
XrdCmsRoutingLogin_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

XrdCmsProtocolProtLink
XrdCmsRoutingRouting
XrdLinkLink
const char * myRole
const char * myMan
int myManPort
XrdCmsNodemyNode
short RSlot
char loggedIn

Static Private Attributes

static XrdSysMutex ProtMutex
static XrdCmsProtocolProtStack
static XrdCmsParser ProtArgs
static const int maxReqSize = 16384
static int readWait

Friends

class XrdCmsJob

Detailed Description

Definition at line 25 of file XrdCmsProtocol.hh.


Member Enumeration Documentation

enum XrdCmsProtocol::Bearing [private]

Definition at line 59 of file XrdCmsProtocol.hh.


Constructor & Destructor Documentation

XrdCmsProtocol::XrdCmsProtocol (  )  [inline]

Definition at line 45 of file XrdCmsProtocol.hh.

Referenced by Alloc().

XrdCmsProtocol::~XrdCmsProtocol (  )  [inline]

Definition at line 48 of file XrdCmsProtocol.hh.


Member Function Documentation

XrdCmsProtocol * XrdCmsProtocol::Alloc ( const char *  theRole = "",
const char *  theMan = 0,
int  thePort = 0 
) [static]

Definition at line 684 of file XrdCmsProtocol.cc.

References XrdSysError::Emsg(), XrdSysMutex::Lock(), loggedIn, myMan, myManPort, myRole, ProtLink, ProtMutex, ProtStack, XrdFrm::Say(), XrdSysMutex::UnLock(), and XrdCmsProtocol().

Referenced by XrdCmsConfig::DoIt(), Match(), and XrdCmsSupervisor::Start().

void XrdCmsProtocol::DoIt (  )  [virtual]

Implements XrdJob.

Definition at line 842 of file XrdCmsProtocol.cc.

References myMan, myManPort, myRole, and Pander().

int XrdCmsProtocol::Execute ( XrdCmsRRData Data  ) 

Definition at line 185 of file XrdCmsProtocol.cc.

References XrdCms::Cluster, XrdCms::CmsState, XrdFrm::Config(), DEBUGR, XrdCmsRouting::Delayable, ECONNABORTED, EINPROGRESS, XrdSysError::Emsg(), EPNAME, XrdCmsRouting::Forward, XrdCmsRouter::getMethod(), XrdCmsNode::Ident, XrdCms::kYR_dnf, XrdCms::kYR_EINVAL, myNode, XrdCmsCluster::NodeCnt, Reissue(), Reply_Delay(), Reply_Error(), XrdCmsRRData::Request, XrdCms::Router(), XrdCmsRRData::Routing, XrdCms::CmsRRHdr::rrCode, XrdFrm::Say(), and XrdCmsState::Suspended.

Referenced by Dispatch(), and XrdCmsJob::DoIt().

XrdProtocol * XrdCmsProtocol::Match ( XrdLink lp  )  [virtual]

Implements XrdProtocol.

Definition at line 217 of file XrdCmsProtocol.cc.

References Alloc(), XrdCms::kYR_login, XrdLink::Peek(), readWait, and XrdLink::setEtext().

int XrdCmsProtocol::Process ( XrdLink lp  )  [virtual]

Implements XrdProtocol.

Definition at line 395 of file XrdCmsProtocol.cc.

References Admit(), XrdCms::Cluster, XrdFrm::Config(), XrdCmsRTable::Del(), Dispatch(), XrdCmsNode::isBound, XrdCmsNode::isConn, isDown, XrdCmsNode::isGone, isLateral, Link, XrdCmsNode::Lock(), loggedIn, myNode, XrdCmsCluster::Remove(), Routing, RSlot, XrdCms::RTable, XrdLink::Serialize(), XrdLink::setEtext(), and XrdCmsNode::UnLock().

void XrdCmsProtocol::Recycle ( XrdLink lp,
int  consec,
const char *  reason 
) [virtual]

Implements XrdProtocol.

Definition at line 445 of file XrdCmsProtocol.cc.

References XrdSysError::Emsg(), XrdLink::ID, XrdSysMutex::Lock(), loggedIn, ProtLink, ProtMutex, ProtStack, XrdFrm::Say(), and XrdSysMutex::UnLock().

int XrdCmsProtocol::Stats ( char *  buff,
int  blen,
int  do_sync = 0 
) [inline, virtual]

Implements XrdProtocol.

Definition at line 43 of file XrdCmsProtocol.hh.

XrdCmsRouting * XrdCmsProtocol::Admit (  )  [private]

Definition at line 466 of file XrdCmsProtocol.cc.

References XrdCmsCluster::Add(), AddPath(), Admit_Redirector(), XrdCms::Cache, XrdCms::Cluster, XrdCms::CMS_isMan, XrdCms::CMS_isPeer, XrdCms::CMS_isProxy, XrdCms::CMS_noStage, XrdCms::CMS_Suspend, XrdCms::CmsState, XrdFrm::Config(), ConfigCheck(), DEBUG, XrdCmsNode::DiskFree, XrdCmsNode::DiskMinF, XrdCmsNode::DiskNums, XrdCmsNode::DiskTotal, XrdCmsNode::DiskUtil, XrdSysError::Emsg(), EPNAME, XrdOucTokenizer::GetLine(), XrdOucTokenizer::GetToken(), XrdCmsNode::Ident, XrdCmsPList_Anchor::Insert(), XrdCmsNode::isDisable, XrdCmsNode::isPeer, XrdCmsNode::isSuspend, Link, Login_Failed(), XrdCms::Manager, XrdCmsNode::Mask(), XrdCms::Meter, myNode, myRole, XrdLink::Name(), XrdCmsCache::Paths, XrdCmsManager::Reset(), XrdCmsCluster::ResetRef(), XrdCmsPInfo::rovec, XrdCms::rspVOps(), XrdFrm::Say(), XrdLink::setID(), XrdCmsMeter::setVirtUpdt(), Source, XrdCmsPInfo::ssvec, XrdCmsState::Suspended, XrdCmsNode::SyncSpace(), Trace, and TRACE_Debug.

Referenced by Process().

XrdCmsRouting* XrdCmsProtocol::Admit_DataServer ( int   )  [private]

XrdCmsRouting * XrdCmsProtocol::Admit_Redirector ( int   )  [private]

Definition at line 619 of file XrdCmsProtocol.cc.

References XrdCmsRTable::Add(), XrdCms::CmsState, DEBUG, XrdSysError::Emsg(), EPNAME, XrdCmsNode::Ident, XrdCms::kYR_status, Link, XrdCmsNode::Lock(), myNode, myRole, XrdCms::rdrVOps(), RSlot, XrdCms::RTable, XrdFrm::Say(), XrdCmsNode::Send(), XrdCmsNode::setSlot(), and XrdCmsState::Suspended.

Referenced by Admit().

XrdCmsRouting* XrdCmsProtocol::Admit_Supervisor ( int   )  [private]

SMask_t XrdCmsProtocol::AddPath ( XrdCmsNode nP,
const char *  pType,
const char *  Path 
) [private]

Definition at line 655 of file XrdCmsProtocol.cc.

References XrdCmsNode::allowsRW, XrdCmsNode::allowsSS, XrdCms::Cache, XrdCmsPList_Anchor::Insert(), XrdCmsNode::isRW, XrdCmsNode::Mask(), XrdCmsCache::Paths, XrdCmsPInfo::rovec, XrdCmsPInfo::rwvec, and XrdCmsPInfo::ssvec.

Referenced by Admit().

int XrdCmsProtocol::Authenticate (  )  [private]

void XrdCmsProtocol::ConfigCheck ( unsigned char *  theConfig  )  [private]

Definition at line 715 of file XrdCmsProtocol.cc.

References XrdCmsCache::Bounce(), XrdCms::Cache, XrdCmsNode::ConfigID, XrdOucCRC::CRC32(), XrdSysError::Emsg(), XrdCmsNode::ID(), Link, XrdCmsNode::Mask(), myNode, XrdLink::Name(), XrdCmsCache::Paths, XrdCmsPList_Anchor::Remove(), and XrdFrm::Say().

Referenced by Admit().

const char * XrdCmsProtocol::Dispatch ( Bearing  cDir,
int  maxWait,
int  maxTries 
) [private]

Definition at line 745 of file XrdCmsProtocol.cc.

References XrdCmsJob::Alloc(), XrdLink::Bind(), DEBUG, Debug, ECONNABORTED, XrdSysError::Emsg(), EPNAME, ETIMEDOUT, Execute(), XrdCmsRouter::getName(), XrdCmsRouting::getRoute(), XrdSysThread::ID(), XrdCmsNode::Ident, isDown, XrdCmsRouting::isSync, isUp, XrdCms::kYR_EINVAL, XrdCms::kYR_ping, XrdCms::kYR_pong, XrdCms::kYR_raw, Link, maxReqSize, myNode, XrdLink::Name(), XrdCmsRouting::noArgs, XrdCmsRRData::Objectify(), XrdCmsParser::Parse(), ProtArgs, QTRACE, XrdLink::RecvAll(), Reply_Error(), XrdCms::Router(), Routing, XrdFrm::Say(), XrdCms::Sched, XrdScheduler::Schedule(), XrdLink::Send(), and sprintf().

Referenced by Pander(), and Process().

XrdCmsRouting * XrdCmsProtocol::Login_Failed ( const char *  Reason  )  [private]

Definition at line 854 of file XrdCmsProtocol.cc.

References Link, and XrdLink::setEtext().

Referenced by Admit().

void XrdCmsProtocol::Pander ( const char *  manager,
int  mport 
) [private]

Definition at line 248 of file XrdCmsProtocol.cc.

References XrdCmsManager::Add(), XrdCmsManList::Add(), XrdCmsState::All_Suspend, XrdLink::Close(), XrdCms::CmsState, XrdFrm::Config(), XrdCmsManTree::Connect(), DEBUG, XrdCmsManList::Del(), XrdCmsManTree::Disc(), Dispatch(), XrdCms::CmsLoginData::dPort, XrdSysError::Emsg(), EPNAME, XrdCmsState::FES_Suspend, free(), XrdCmsMeter::FreeSpace(), XrdCms::CmsLoginData::fsNum, XrdCms::CmsLoginData::fSpace, XrdCms::CmsLoginData::fsUtil, XrdCms::CmsLoginData::HoldTime, XrdNetDNS::IPAddr(), isUp, XrdCms::kYR_redirect, XrdCms::kYR_Version, Link, XrdCmsLogin::Login(), XrdCms::Manager, XrdCms::ManTree, XrdCms::Meter, XrdCms::CmsLoginData::Mode, Mode, XrdCms::CmsLoginData::mSpace, XrdCms::myMans, myNode, myRole, XrdCmsManList::Next(), XrdCmsState::NoStaging, XrdCmsMeter::numFS(), XrdCms::CmsLoginData::Paths, XrdCmsState::Port(), XrdCmsManTree::Register(), XrdCmsManager::Remove(), Routing, XrdFrm::Say(), XrdCms::CmsLoginData::SID, XrdCms::CmsLoginData::Size, XrdSysTimer::Snooze(), XrdCms::CmsLoginData::sPort, XrdCms::srvVOps(), XrdCms::supVOps(), XrdCmsState::Suspended, XrdCmsMeter::TotalSpace(), XrdCmsManTree::Trying(), XrdCms::CmsLoginData::tSpace, XrdCms::CmsLoginData::Version, and XRDNET_NOEMSG.

Referenced by DoIt().

void XrdCmsProtocol::Reissue ( XrdCmsRRData Data  )  [private]

Definition at line 864 of file XrdCmsProtocol.cc.

References XrdCmsCluster::Broadcast(), XrdCms::Cache, XrdCms::Cluster, DEBUG, XrdSysError::Emsg(), EPNAME, XrdCmsPList_Anchor::Find(), XrdCmsRouter::getName(), XrdCms::kYR_hopcount, XrdCms::kYR_hopincr, XrdCmsCache::Paths, XrdCms::Router(), XrdCmsPInfo::rovec, XrdCmsPInfo::rwvec, and XrdFrm::Say().

Referenced by Execute().

void XrdCmsProtocol::Reply_Delay ( XrdCmsRRData Data,
kXR_unt32  theDelay 
) [private]

Definition at line 907 of file XrdCmsProtocol.cc.

References DEBUG, EPNAME, XrdCmsNode::Ident, XrdCms::kYR_wait, Link, myNode, XrdCmsRouting::Repliable, and XrdLink::Send().

Referenced by Execute().

void XrdCmsProtocol::Reply_Error ( XrdCmsRRData Data,
int  ecode,
const char *  etext 
) [private]

Definition at line 926 of file XrdCmsProtocol.cc.

References DEBUG, EPNAME, XrdCmsNode::Ident, XrdCms::kYR_error, Link, myNode, n, XrdCmsRouting::Repliable, and XrdLink::Send().

Referenced by Dispatch(), and Execute().


Friends And Related Function Documentation

friend class XrdCmsJob [friend]

Definition at line 27 of file XrdCmsProtocol.hh.


Member Data Documentation

XrdSysMutex XrdCmsProtocol::ProtMutex [static, private]

Definition at line 67 of file XrdCmsProtocol.hh.

Referenced by Alloc(), and Recycle().

XrdCmsProtocol * XrdCmsProtocol::ProtStack [static, private]

Definition at line 68 of file XrdCmsProtocol.hh.

Referenced by Alloc(), and Recycle().

XrdCmsParser XrdCmsProtocol::ProtArgs [static, private]

Definition at line 69 of file XrdCmsProtocol.hh.

Referenced by Dispatch().

XrdCmsProtocol* XrdCmsProtocol::ProtLink [private]

Definition at line 70 of file XrdCmsProtocol.hh.

Referenced by Alloc(), and Recycle().

XrdCmsRouting* XrdCmsProtocol::Routing [private]

Definition at line 72 of file XrdCmsProtocol.hh.

Referenced by Dispatch(), Pander(), and Process().

const int XrdCmsProtocol::maxReqSize = 16384 [static, private]

Definition at line 74 of file XrdCmsProtocol.hh.

Referenced by Dispatch().

XrdLink* XrdCmsProtocol::Link [private]

Definition at line 76 of file XrdCmsProtocol.hh.

Referenced by Admit(), Admit_Redirector(), XrdCmsJob::Alloc(), ConfigCheck(), Dispatch(), Login_Failed(), Pander(), Process(), XrdCmsJob::Recycle(), Reply_Delay(), and Reply_Error().

int XrdCmsProtocol::readWait [static, private]

Definition at line 77 of file XrdCmsProtocol.hh.

Referenced by Match().

const char* XrdCmsProtocol::myRole [private]

Definition at line 78 of file XrdCmsProtocol.hh.

Referenced by Admit(), Admit_Redirector(), Alloc(), XrdCmsJob::Alloc(), DoIt(), and Pander().

const char* XrdCmsProtocol::myMan [private]

Definition at line 79 of file XrdCmsProtocol.hh.

Referenced by Alloc(), and DoIt().

int XrdCmsProtocol::myManPort [private]

Definition at line 80 of file XrdCmsProtocol.hh.

Referenced by Alloc(), and DoIt().

XrdCmsNode* XrdCmsProtocol::myNode [private]

Definition at line 81 of file XrdCmsProtocol.hh.

Referenced by Admit(), Admit_Redirector(), ConfigCheck(), Dispatch(), Execute(), Pander(), Process(), Reply_Delay(), and Reply_Error().

short XrdCmsProtocol::RSlot [private]

Definition at line 82 of file XrdCmsProtocol.hh.

Referenced by Admit_Redirector(), and Process().

char XrdCmsProtocol::loggedIn [private]

Definition at line 83 of file XrdCmsProtocol.hh.

Referenced by Alloc(), Process(), and Recycle().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:50:20 2011 for ROOT_528-00b_version by  doxygen 1.5.1