XrdCmsRRQ Class Reference

#include <XrdCmsRRQ.hh>

List of all members.

Public Member Functions

short Add (short Snum, XrdCmsRRQInfo *ip)
void Del (short Snum, const void *Key)
int Init (int Tint=0, int Tdly=0)
void Ready (int Snum, const void *Key, SMask_t mask1, SMask_t mask2)
void * Respond ()
void * TimeOut ()
 XrdCmsRRQ ()
 ~XrdCmsRRQ ()

Private Member Functions

void sendLocResp (XrdCmsRRQSlot *lP)
void sendResponse (XrdCmsRRQInfo *Info, int doredir, int totlen=0)

Private Attributes

XrdSysMutex myMutex
XrdSysSemaphore isWaiting
XrdSysSemaphore isReady
XrdCmsRRQSlot Slot [numSlots]
XrdOucDLlist< XrdCmsRRQSlotwaitQ
XrdOucDLlist< XrdCmsRRQSlotreadyQ
iovec data_iov [iov_cnt]
iovec redr_iov [iov_cnt]
XrdCms::CmsResponse dataResp
XrdCms::CmsResponse redrResp
XrdCms::CmsResponse waitResp
union {
   char   hostbuff [288]
   char   databuff [XrdCms::CmsLocateRequest::RILen *STMax]
}; 
int Tslice
int Tdelay
unsigned int myClock

Static Private Attributes

static const int numSlots = 1024
static const int iov_cnt = 2


Detailed Description

Definition at line 82 of file XrdCmsRRQ.hh.


Constructor & Destructor Documentation

XrdCmsRRQ::XrdCmsRRQ (  )  [inline]

Definition at line 98 of file XrdCmsRRQ.hh.

XrdCmsRRQ::~XrdCmsRRQ (  )  [inline]

Definition at line 100 of file XrdCmsRRQ.hh.


Member Function Documentation

short XrdCmsRRQ::Add ( short  Snum,
XrdCmsRRQInfo ip 
)

Definition at line 61 of file XrdCmsRRQ.cc.

References XrdCmsRRQSlot::Alloc(), XrdCmsRRQSlot::Cont, XrdCmsRRQSlot::Expire, Info, XrdOucDLlist< T >::Insert(), isWaiting, XrdCmsRRQSlot::Link, XrdCmsRRQSlot::LkUp, XrdSysMutex::Lock(), myClock, myMutex, XrdSysSemaphore::Post(), XrdOucDLlist< T >::Prev(), XrdOucDLlist< T >::Singleton(), Slot, XrdCmsRRQSlot::slotNum, XrdSysMutex::UnLock(), and waitQ.

Referenced by XrdCmsCache::Add2Q().

void XrdCmsRRQ::Del ( short  Snum,
const void *  Key 
)

Definition at line 100 of file XrdCmsRRQ.cc.

References Ready().

Referenced by XrdCmsCache::Recycle().

int XrdCmsRRQ::Init ( int  Tint = 0,
int  Tdly = 0 
)

Definition at line 109 of file XrdCmsRRQ.cc.

References data_iov, databuff, XrdCms::CmsRRHdr::datalen, dataResp, XrdSysError::Emsg(), XrdCms::CmsResponse::Hdr, hostbuff, iovec::iov_base, iovec::iov_len, XrdCms::kYR_data, XrdCms::kYR_redirect, XrdCms::kYR_wait, XrdCms::CmsRRHdr::modifier, redr_iov, redrResp, XrdCms::CmsRRHdr::rrCode, XrdSysThread::Run(), XrdFrm::Say(), XrdCms::CmsRRHdr::streamid, Tdelay, Tslice, XrdCms::CmsResponse::Val, waitResp, XrdCmsRRQ_StartRespond(), and XrdCmsRRQ_StartTimeOut().

Referenced by XrdCmsConfig::setupManager().

void XrdCmsRRQ::Ready ( int  Snum,
const void *  Key,
SMask_t  mask1,
SMask_t  mask2 
)

Definition at line 180 of file XrdCmsRRQ.cc.

References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCmsRRQSlot::Expire, XrdCmsRRQSlot::Info, XrdOucDLlist< T >::Insert(), isReady, XrdCmsRRQInfo::Key, XrdCmsRRQSlot::Link, XrdSysMutex::Lock(), myMutex, XrdSysSemaphore::Post(), XrdOucDLlist< T >::Prev(), readyQ, XrdOucDLlist< T >::Remove(), XrdOucDLlist< T >::Singleton(), Slot, and XrdSysMutex::UnLock().

Referenced by Del(), and XrdCmsCache::Dispatch().

void * XrdCmsRRQ::Respond (  ) 

Definition at line 209 of file XrdCmsRRQ.cc.

References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCms::Cluster, XrdCmsRRQSlot::Cont, XrdCms::CmsRRHdr::datalen, XrdCmsRRQSlot::Expire, XrdCms::CmsResponse::Hdr, hostbuff, XrdCmsRRQSlot::Info, iovec::iov_len, XrdCmsRRQInfo::isLU, isReady, XrdCmsRRQInfo::isRW, XrdOucDLlist< T >::Item(), XrdCmsRRQSlot::Link, XrdCmsRRQSlot::LkUp, XrdSysMutex::Lock(), myMutex, XrdOucDLlist< T >::Next(), XrdMonCtrCollector::port, readyQ, XrdCmsRRQSlot::Recycle(), redr_iov, redrResp, XrdOucDLlist< T >::Remove(), XrdCmsCluster::Select(), sendLocResp(), sendResponse(), XrdOucDLlist< T >::Singleton(), XrdSysMutex::UnLock(), XrdCms::CmsResponse::Val, and XrdSysSemaphore::Wait().

Referenced by XrdCmsRRQ_StartRespond().

void * XrdCmsRRQ::TimeOut (  ) 

Definition at line 329 of file XrdCmsRRQ.cc.

References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCmsRRQSlot::Expire, XrdOucDLlist< T >::Insert(), isReady, isWaiting, XrdOucDLlist< T >::Item(), XrdCmsRRQSlot::Link, XrdSysMutex::Lock(), myClock, myMutex, XrdOucDLlist< T >::Next(), XrdSysSemaphore::Post(), XrdOucDLlist< T >::Prev(), readyQ, XrdOucDLlist< T >::Remove(), XrdOucDLlist< T >::Singleton(), Tslice, XrdSysMutex::UnLock(), XrdSysSemaphore::Wait(), XrdSysTimer::Wait(), and waitQ.

Referenced by XrdCmsRRQ_StartTimeOut().

void XrdCmsRRQ::sendLocResp ( XrdCmsRRQSlot lP  )  [private]

Definition at line 255 of file XrdCmsRRQ.cc.

References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCms::Cluster, XrdCmsRRQSlot::Cont, data_iov, databuff, XrdCms::CmsRRHdr::datalen, dataResp, XrdCmsNode::do_LocFmt(), XrdCmsRTable::Find(), XrdCms::CmsResponse::Hdr, XrdCmsRRQInfo::ID, XrdCmsRRQSlot::Info, iov_cnt, iovec::iov_len, XrdCmsCluster::List(), XrdCmsRTable::Lock(), XrdCmsCluster::LS_IPV6, XrdCmsRRQInfo::Rinst, XrdCmsRRQInfo::Rnum, XrdCms::RTable, XrdCmsRRQInfo::rwVec, XrdCmsNode::Send(), sendResponse(), XrdCms::CmsRRHdr::streamid, and XrdCmsRTable::UnLock().

Referenced by Respond().

void XrdCmsRRQ::sendResponse ( XrdCmsRRQInfo Info,
int  doredir,
int  totlen = 0 
) [private]

Definition at line 303 of file XrdCmsRRQ.cc.

References XrdCmsRTable::Find(), XrdCms::CmsResponse::Hdr, Info, iov_cnt, XrdCmsRTable::Lock(), redr_iov, redrResp, XrdCms::RTable, XrdCmsNode::Send(), XrdCms::CmsRRHdr::streamid, XrdCmsRTable::UnLock(), and waitResp.

Referenced by Respond(), and sendLocResp().


Member Data Documentation

const int XrdCmsRRQ::numSlots = 1024 [static, private]

Definition at line 106 of file XrdCmsRRQ.hh.

XrdSysMutex XrdCmsRRQ::myMutex [private]

Definition at line 108 of file XrdCmsRRQ.hh.

Referenced by Add(), Ready(), Respond(), and TimeOut().

XrdSysSemaphore XrdCmsRRQ::isWaiting [private]

Definition at line 109 of file XrdCmsRRQ.hh.

Referenced by Add(), and TimeOut().

XrdSysSemaphore XrdCmsRRQ::isReady [private]

Definition at line 110 of file XrdCmsRRQ.hh.

Referenced by Ready(), Respond(), and TimeOut().

XrdCmsRRQSlot XrdCmsRRQ::Slot[numSlots] [private]

Definition at line 111 of file XrdCmsRRQ.hh.

Referenced by Add(), and Ready().

XrdOucDLlist<XrdCmsRRQSlot> XrdCmsRRQ::waitQ [private]

Definition at line 112 of file XrdCmsRRQ.hh.

Referenced by Add(), and TimeOut().

XrdOucDLlist<XrdCmsRRQSlot> XrdCmsRRQ::readyQ [private]

Definition at line 113 of file XrdCmsRRQ.hh.

Referenced by Ready(), Respond(), and TimeOut().

const int XrdCmsRRQ::iov_cnt = 2 [static, private]

Definition at line 114 of file XrdCmsRRQ.hh.

Referenced by sendLocResp(), and sendResponse().

struct iovec XrdCmsRRQ::data_iov[iov_cnt] [private]

Definition at line 115 of file XrdCmsRRQ.hh.

Referenced by Init(), and sendLocResp().

struct iovec XrdCmsRRQ::redr_iov[iov_cnt] [private]

Definition at line 116 of file XrdCmsRRQ.hh.

Referenced by Init(), Respond(), and sendResponse().

XrdCms::CmsResponse XrdCmsRRQ::dataResp [private]

Definition at line 117 of file XrdCmsRRQ.hh.

Referenced by Init(), and sendLocResp().

XrdCms::CmsResponse XrdCmsRRQ::redrResp [private]

Definition at line 118 of file XrdCmsRRQ.hh.

Referenced by Init(), Respond(), and sendResponse().

XrdCms::CmsResponse XrdCmsRRQ::waitResp [private]

Definition at line 119 of file XrdCmsRRQ.hh.

Referenced by Init(), and sendResponse().

char XrdCmsRRQ::hostbuff[288] [private]

Definition at line 120 of file XrdCmsRRQ.hh.

Referenced by Init(), and Respond().

char XrdCmsRRQ::databuff[XrdCms::CmsLocateRequest::RILen *STMax] [private]

Definition at line 122 of file XrdCmsRRQ.hh.

Referenced by Init(), and sendLocResp().

union { ... } [private]

int XrdCmsRRQ::Tslice [private]

Definition at line 124 of file XrdCmsRRQ.hh.

Referenced by Init(), and TimeOut().

int XrdCmsRRQ::Tdelay [private]

Definition at line 125 of file XrdCmsRRQ.hh.

Referenced by Init().

unsigned int XrdCmsRRQ::myClock [private]

Definition at line 126 of file XrdCmsRRQ.hh.

Referenced by Add(), and TimeOut().


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