57int XrdCmsResp::numFree = 0;
58int XrdCmsResp::RepDelay = 5;
113void XrdCmsResp::Recycle()
118 if (myBuff) {myBuff->
Recycle(); myBuff = 0;}
123 if (XrdCmsResp::numFree >= XrdCmsResp::maxFree)
delete this;
124 else {myMutex.
Lock();
146 strlcpy(theMan, manp,
sizeof(theMan));
151 if (Last) {Last->next =
this; Last =
this;}
152 else Last=First =
this;
174 {
if (!(First = rp->next)) Last = 0;
185void XrdCmsResp::ReplyXeq()
195 {
DEBUG(
"No callback object for user " <<UserID <<
" msgid="
211 sprintf(buff,
"%d", Result);
212 Say.
Emsg(
"Reply",
"Invalid call back result code", buff);
213 setErrInfo(EINVAL,
"Invalid call back response from redirector.");
243 memset(mqTab, 0,
sizeof(mqTab));
256 i = rp->myID % mqSize;
258 rp->next = (mqTab[i] ? mqTab[i] : 0);
273 for (i = 0; i < mqSize; i++)
274 {
while ((rp = mqTab[i])) {mqTab[i] = rp->next;
delete rp;}}
292 while(rp && rp->myID != msgid) {pp = rp; rp = rp->next;}
296 if (rp) {
if (pp) pp->next = rp->next;
297 else mqTab[i] = rp->next;
static int Decode(const char *Man, XrdCms::CmsRRHdr &hdr, XrdOucBuffer *dBuff, XrdOucErrInfo *eInfo)
XrdCmsResp * Rem(int msgid)
static XrdCmsResp * Alloc(XrdOucErrInfo *erp, int msgid)
void Recycle()
Recycle the buffer. The buffer may be reused in the future.
virtual void Done(int &Result, XrdOucErrInfo *eInfo, const char *Path=0)=0
const char * getErrUser()
void setErrCB(XrdOucEICB *cb, unsigned long long cbarg=0)
void setErrUser(const char *user)
const char * getErrData()
void setErrMid(int mid)
Set the monitoring identifier.
int setErrInfo(int code, const char *emsg)
void setErrData(const char *Data, int Offs=0)
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
static const int Path_Offset