xrootd
|
#include <XrdCmsRRQ.hh>
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< XrdCmsRRQSlot > | waitQ |
XrdOucDLlist< XrdCmsRRQSlot > | readyQ |
struct iovec | data_iov [iov_cnt] |
struct 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 |
XrdCmsRRQ::XrdCmsRRQ | ( | ) | [inline] |
XrdCmsRRQ::~XrdCmsRRQ | ( | ) | [inline] |
short XrdCmsRRQ::Add | ( | short | Snum, |
XrdCmsRRQInfo * | ip | ||
) |
References XrdCmsRRQSlot::Alloc(), XrdCmsRRQSlot::Cont, XrdCmsRRQSlot::Expire, XrdCmsRRQInfo::isLU, XrdCmsRRQInfo::Key, XrdCmsRRQSlot::Link, XrdCmsRRQSlot::LkUp, and XrdCmsRRQSlot::slotNum.
Referenced by XrdCmsCache::Add2Q().
void XrdCmsRRQ::Del | ( | short | Snum, |
const void * | Key | ||
) |
Referenced by XrdCmsCache::Recycle().
int XrdCmsRRQ::Init | ( | int | Tint = 0 , |
int | Tdly = 0 |
||
) |
References XrdSysError::Emsg(), XrdCms::kYR_data, XrdCms::kYR_redirect, XrdCms::kYR_wait, XrdSysThread::Run(), XrdCms::Say, XrdCmsRRQ_StartRespond(), and XrdCmsRRQ_StartTimeOut().
Referenced by XrdCmsConfig::setupManager().
References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCmsRRQSlot::Expire, XrdCmsRRQSlot::Info, XrdCmsRRQInfo::Key, XrdCmsRRQSlot::Link, and XrdOucDLlist< T >::Remove().
Referenced by XrdCmsCache::Dispatch().
void * XrdCmsRRQ::Respond | ( | ) |
References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCms::Cluster, XrdCmsRRQSlot::Cont, XrdCmsRRQSlot::Expire, XrdCmsRRQSlot::Info, XrdCmsRRQInfo::isLU, XrdCmsRRQInfo::isRW, XrdCmsRRQSlot::Link, XrdCmsRRQSlot::LkUp, XrdMonCtrCollector::port, XrdCmsRRQSlot::Recycle(), XrdOucDLlist< T >::Remove(), and XrdCmsCluster::Select().
Referenced by XrdCmsRRQ_StartRespond().
void XrdCmsRRQ::sendLocResp | ( | XrdCmsRRQSlot * | lP | ) | [private] |
References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCms::Cluster, XrdCmsRRQSlot::Cont, XrdCmsNode::do_LocFmt(), XrdCmsRTable::Find(), XrdCmsRRQInfo::ID, XrdCmsRRQSlot::Info, XrdCmsCluster::List(), XrdCmsRTable::Lock(), XrdCmsCluster::LS_IPV6, XrdCmsRRQInfo::Rinst, XrdCmsRRQInfo::Rnum, XrdCms::RTable, XrdCmsRRQInfo::rwVec, XrdCmsNode::Send(), and XrdCmsRTable::UnLock().
void XrdCmsRRQ::sendResponse | ( | XrdCmsRRQInfo * | Info, |
int | doredir, | ||
int | totlen = 0 |
||
) | [private] |
void * XrdCmsRRQ::TimeOut | ( | ) |
References XrdCmsRRQSlot::Arg1, XrdCmsRRQSlot::Arg2, XrdCmsRRQSlot::Expire, XrdCmsRRQSlot::Link, XrdOucDLlist< T >::Remove(), and XrdSysTimer::Wait().
Referenced by XrdCmsRRQ_StartTimeOut().
union { ... } [private] |
struct iovec XrdCmsRRQ::data_iov[iov_cnt] [private] |
char XrdCmsRRQ::databuff[XrdCms::CmsLocateRequest::RILen *STMax] |
XrdCms::CmsResponse XrdCmsRRQ::dataResp [private] |
char XrdCmsRRQ::hostbuff[288] |
const int XrdCmsRRQ::iov_cnt = 2 [static, private] |
XrdSysSemaphore XrdCmsRRQ::isReady [private] |
XrdSysSemaphore XrdCmsRRQ::isWaiting [private] |
unsigned int XrdCmsRRQ::myClock [private] |
XrdSysMutex XrdCmsRRQ::myMutex [private] |
const int XrdCmsRRQ::numSlots = 1024 [static, private] |
XrdOucDLlist<XrdCmsRRQSlot> XrdCmsRRQ::readyQ [private] |
struct iovec XrdCmsRRQ::redr_iov[iov_cnt] [private] |
XrdCms::CmsResponse XrdCmsRRQ::redrResp [private] |
XrdCmsRRQSlot XrdCmsRRQ::Slot[numSlots] [private] |
int XrdCmsRRQ::Tdelay [private] |
int XrdCmsRRQ::Tslice [private] |
XrdOucDLlist<XrdCmsRRQSlot> XrdCmsRRQ::waitQ [private] |
XrdCms::CmsResponse XrdCmsRRQ::waitResp [private] |