57 int XrdCmsResp::numFree = 0;
58 int XrdCmsResp::RepDelay = 5;
113 void 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;
177 }
else rdyMutex.UnLock();
185 void XrdCmsResp::ReplyXeq()
195 {
DEBUG(
"No callback object for user " <<UserID <<
" msgid="
196 <<myRRHdr.streamid <<
' ' <<theMan);
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)
const char * getErrData()
void setErrCB(XrdOucEICB *cb, unsigned long long cbarg=0)
void setErrUser(const char *user)
void setErrMid(int mid)
Set the monitoring identifier.
int setErrInfo(int code, const char *emsg)
const char * getErrUser()
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