40 #define ENODATA ENOATTR
58 theRespond(0), rsvd1(0), epNode(0),
59 detTTL(0), tOut(0), onClient(true), flags(0) {}
65 void XrdSsiRequest::CleanUp()
83 bool XrdSsiRequest::CopyData(
char *buff,
int blen)
90 {errInfo.
Set(
"Buffer length invalid", EINVAL);
98 {
if (Resp.blen > blen) last =
false;
99 else {blen = Resp.blen; last =
true;}
100 memcpy(buff, Resp.buff, blen);
101 Resp.buff += blen; Resp.blen -= blen;
102 }
else {blen = 0; last =
true;}
128 if (respP) respP->
Finished(*
this, Resp, cancel);
145 std::string epName(epNode ? epNode :
"");
172 {
if (Resp.strmP->SetBuff(errInfo, buff, blen))
return;}
174 {
if (CopyData(buff, blen))
return;}
202 if (onoff) flags |= isaRetry;
203 else flags &= ~isaRetry;
void Clr()
Reset and clear error information.
void Set(const char *eMsg=0, int eNum=0, int eArg=0)
std::string GetEndPoint()
const char * GetMetadata(int &dlen)
bool Finished(bool cancel=false)
XrdSsiRequest(const char *reqid=0, uint16_t tmo=0)
virtual void RelRequestBuffer()
void ReleaseRequestBuffer()
void SetRetry(bool onoff)
virtual void ProcessResponseData(const XrdSsiErrInfo &eInfo, char *buff, int blen, bool last)
void GetResponseData(char *buff, int blen)
virtual void Finished(XrdSsiRequest &rqstR, const XrdSsiRespInfo &rInfo, bool cancel=false)=0
XrdSsiMutex ubMutex(XrdSsiMutex::Recursive)
int mdlen
Metadata length.
const char * mdata
-> Metadata about response.