XrdCmsResp Class Reference

#include <XrdCmsResp.hh>

Inheritance diagram for XrdCmsResp:

XrdOucEICB XrdOucErrInfo List of all members.

Public Member Functions

void Done (int &Result, XrdOucErrInfo *eInfo)
int ID ()
void Reply (const char *Man, XrdCms::CmsRRHdr &rrhdr, XrdNetBuffer *netbuff)
int Same (unsigned long long arg1, unsigned long long arg2)
 XrdCmsResp ()
 ~XrdCmsResp ()

Static Public Member Functions

static XrdCmsRespAlloc (XrdOucErrInfo *erp, int msgid)
static void Reply ()
static void setDelay (int repdly)

Private Member Functions

void Recycle ()
void ReplyXeq ()

Private Attributes

XrdCms::CmsRRHdr myRRHdr
XrdNetBuffermyBuff
char theMan [64]
XrdCmsRespCB SyncCB
XrdCmsRespnext
int myID
char UserID [64]

Static Private Attributes

static XrdSysSemaphore isReady
static XrdSysMutex rdyMutex
static XrdCmsRespFirst
static XrdCmsRespLast
static XrdSysMutex myMutex
static XrdCmsRespnextFree
static int numFree
static const int maxFree = 300
static int RepDelay

Friends

class XrdCmsRespQ

Detailed Description

Definition at line 52 of file XrdCmsResp.hh.


Constructor & Destructor Documentation

XrdCmsResp::XrdCmsResp (  )  [inline]

Definition at line 73 of file XrdCmsResp.hh.

Referenced by Alloc().

XrdCmsResp::~XrdCmsResp (  )  [inline]

Definition at line 74 of file XrdCmsResp.hh.


Member Function Documentation

XrdCmsResp * XrdCmsResp::Alloc ( XrdOucErrInfo erp,
int  msgid 
) [static]

Definition at line 50 of file XrdCmsResp.cc.

References XrdOucErrInfo::ErrCB, XrdOucErrInfo::ErrCBarg, XrdOucErrInfo::getErrCB(), XrdOucErrInfo::getErrText(), XrdOucErrInfo::getErrUser(), XrdCmsRespCB::Init(), XrdSysMutex::Lock(), myID, myMutex, next, nextFree, numFree, XrdOucErrInfo::setErrCB(), XrdOucErrInfo::setErrInfo(), strlcpy(), SyncCB, XrdSysMutex::UnLock(), UserID, and XrdCmsResp().

Referenced by XrdCmsClientMan::delayResp().

void XrdCmsResp::Done ( int &  Result,
XrdOucErrInfo eInfo 
) [inline, virtual]

Implements XrdOucEICB.

Definition at line 59 of file XrdCmsResp.hh.

int XrdCmsResp::ID (  )  [inline]

Definition at line 61 of file XrdCmsResp.hh.

void XrdCmsResp::Reply ( const char *  Man,
XrdCms::CmsRRHdr rrhdr,
XrdNetBuffer netbuff 
)

Definition at line 117 of file XrdCmsResp.cc.

References First, isReady, Last, XrdSysMutex::Lock(), myBuff, myRRHdr, next, XrdSysSemaphore::Post(), rdyMutex, strlcpy(), theMan, and XrdSysMutex::UnLock().

Referenced by XrdCmsClientMan::relayResp().

void XrdCmsResp::Reply (  )  [static]

Definition at line 143 of file XrdCmsResp.cc.

References First, isReady, Last, XrdSysMutex::Lock(), next, rdyMutex, ReplyXeq(), XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().

Referenced by XrdCmsStartResp().

int XrdCmsResp::Same ( unsigned long long  arg1,
unsigned long long  arg2 
) [inline, virtual]

Implements XrdOucEICB.

Definition at line 68 of file XrdCmsResp.hh.

static void XrdCmsResp::setDelay ( int  repdly  )  [inline, static]

Definition at line 71 of file XrdCmsResp.hh.

void XrdCmsResp::Recycle (  )  [private]

Definition at line 92 of file XrdCmsResp.cc.

References XrdSysMutex::Lock(), maxFree, myBuff, myMutex, next, nextFree, numFree, XrdNetBuffer::Recycle(), and XrdSysMutex::UnLock().

Referenced by ReplyXeq().

void XrdCmsResp::ReplyXeq (  )  [private]

Definition at line 164 of file XrdCmsResp.cc.

References XrdNetBuffer::data, DEBUG, XrdCmsParser::Decode(), XrdNetBuffer::dlen, XrdOucEICB::Done(), XrdSysError::Emsg(), EPNAME, XrdOucErrInfo::ErrCB, myBuff, myRRHdr, Recycle(), XrdFrm::Say(), SFS_DATA, SFS_ERROR, SFS_REDIRECT, SFS_STALL, sprintf(), XrdCms::CmsRRHdr::streamid, SyncCB, theMan, UserID, and XrdCmsRespCB::Wait().

Referenced by Reply().


Friends And Related Function Documentation

friend class XrdCmsRespQ [friend]

Definition at line 55 of file XrdCmsResp.hh.


Member Data Documentation

XrdSysSemaphore XrdCmsResp::isReady [static, private]

Definition at line 80 of file XrdCmsResp.hh.

Referenced by Reply().

XrdSysMutex XrdCmsResp::rdyMutex [static, private]

Definition at line 81 of file XrdCmsResp.hh.

Referenced by Reply().

XrdCmsResp * XrdCmsResp::First [static, private]

Definition at line 82 of file XrdCmsResp.hh.

Referenced by Reply().

XrdCmsResp * XrdCmsResp::Last [static, private]

Definition at line 83 of file XrdCmsResp.hh.

Referenced by Reply().

XrdSysMutex XrdCmsResp::myMutex [static, private]

Definition at line 85 of file XrdCmsResp.hh.

Referenced by Alloc(), and Recycle().

XrdCmsResp * XrdCmsResp::nextFree [static, private]

Definition at line 86 of file XrdCmsResp.hh.

Referenced by Alloc(), and Recycle().

int XrdCmsResp::numFree [static, private]

Definition at line 87 of file XrdCmsResp.hh.

Referenced by Alloc(), and Recycle().

const int XrdCmsResp::maxFree = 300 [static, private]

Definition at line 88 of file XrdCmsResp.hh.

Referenced by Recycle().

int XrdCmsResp::RepDelay [static, private]

Definition at line 89 of file XrdCmsResp.hh.

XrdCms::CmsRRHdr XrdCmsResp::myRRHdr [private]

Definition at line 91 of file XrdCmsResp.hh.

Referenced by Reply(), and ReplyXeq().

XrdNetBuffer* XrdCmsResp::myBuff [private]

Definition at line 92 of file XrdCmsResp.hh.

Referenced by Recycle(), Reply(), and ReplyXeq().

char XrdCmsResp::theMan[64] [private]

Definition at line 93 of file XrdCmsResp.hh.

Referenced by Reply(), and ReplyXeq().

XrdCmsRespCB XrdCmsResp::SyncCB [private]

Definition at line 95 of file XrdCmsResp.hh.

Referenced by Alloc(), and ReplyXeq().

XrdCmsResp* XrdCmsResp::next [private]

Definition at line 96 of file XrdCmsResp.hh.

Referenced by XrdCmsRespQ::Add(), Alloc(), XrdCmsRespQ::Purge(), Recycle(), XrdCmsRespQ::Rem(), and Reply().

int XrdCmsResp::myID [private]

Definition at line 97 of file XrdCmsResp.hh.

Referenced by XrdCmsRespQ::Add(), Alloc(), and XrdCmsRespQ::Rem().

char XrdCmsResp::UserID[64] [private]

Definition at line 98 of file XrdCmsResp.hh.

Referenced by Alloc(), and ReplyXeq().


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