![]() |
XRootD
|
#include <XrdXrootdCallBack.hh>
Public Member Functions | |
XrdXrootdCallBack (const char *opn, const char opc) | |
~XrdXrootdCallBack () | |
void | Done (int &Result, XrdOucErrInfo *eInfo, const char *Path=0) |
const char * | Func () |
char | Oper () |
int | Same (unsigned long long arg1, unsigned long long arg2) |
void | sendError (int rc, XrdOucErrInfo *eInfo, const char *Path) |
void | sendResp (XrdOucErrInfo *eInfo, XResponseType xrt, int *Data=0, const char *Msg=0, int Mlen=0) |
void | sendVesp (XrdOucErrInfo *eInfo, XResponseType xrt, struct iovec *ioV, int ioN) |
![]() | |
XrdOucEICB () | |
Constructor and destructor. More... | |
virtual | ~XrdOucEICB () |
Static Public Member Functions | |
static void | setVals (XrdSysError *erp, XrdXrootdStats *SIp, XrdScheduler *schp, int port) |
Definition at line 43 of file XrdXrootdCallBack.hh.
|
inline |
Definition at line 72 of file XrdXrootdCallBack.hh.
|
inline |
Definition at line 75 of file XrdXrootdCallBack.hh.
|
virtual |
Invoke a callback after an operation completes.
Result | - the original function's result (may be changed). |
eInfo | - Associated error information. The eInfo object may not be modified until it's own callback Done() method is called, if supplied. If the callback function in eInfo is zero, then the eInfo object is deleted by the invoked callback. Otherwise, that method must be invoked by this callback function after the actual callback message is sent. This allows the callback requestor to do post-processing and be asynchronous being assured that the callback completed. |
Path | - Optionally, the path related to thid request. It is used for tracing and detailed monitoring purposes. |
Implements XrdOucEICB.
Definition at line 251 of file XrdXrootdCallBack.cc.
References XrdXrootdCBJob::Alloc(), XrdOucEICB::Done(), eDest, XrdSysError::Emsg(), XrdOucErrInfo::getErrCB(), XrdOucErrInfo::getErrUser(), Path, XrdGlobal::Sched, and XrdScheduler::Schedule().
|
inline |
Definition at line 51 of file XrdXrootdCallBack.hh.
Referenced by XrdXrootdCBJob::DoIt().
|
inline |
Definition at line 53 of file XrdXrootdCallBack.hh.
|
virtual |
Determine if two callback arguments refer to the same client.
arg1 | - The first callback argument. |
arg2 | - The second callback argument. |
Implements XrdOucEICB.
Definition at line 271 of file XrdXrootdCallBack.cc.
References XrdXrootdReqID::getID().
void XrdXrootdCallBack::sendError | ( | int | rc, |
XrdOucErrInfo * | eInfo, | ||
const char * | Path | ||
) |
Definition at line 287 of file XrdXrootdCallBack.cc.
References eDest, XrdSysError::Emsg(), eMsg, XrdXrootdStats::errorCnt, XrdOucErrInfo::getErrMid(), XrdOucErrInfo::getErrText(), XrdOucErrInfo::getErrTextLen(), XrdOucErrInfo::getErrUser(), kXR_error, kXR_ok, kXR_redirect, kXR_ServerError, kXR_wait, XProtocol::mapError(), Path, XrdXrootdStats::redirCnt, XrdXrootdMonitor::Redirect(), sendResp(), sendVesp(), SFS_DATA, SFS_DATAVEC, SFS_ERROR, SFS_REDIRECT, SFS_STALL, XrdXrootd::SI, XrdXrootdStats::stallCnt, and TRACE.
Referenced by XrdXrootdCBJob::DoIt().
void XrdXrootdCallBack::sendResp | ( | XrdOucErrInfo * | eInfo, |
XResponseType | xrt, | ||
int * | Data = 0 , |
||
const char * | Msg = 0 , |
||
int | Mlen = 0 |
||
) |
Definition at line 363 of file XrdXrootdCallBack.cc.
References eDest, XrdSysError::Emsg(), XrdOucErrInfo::extData(), XrdOucErrInfo::getErrArg(), XrdOucErrInfo::getErrUser(), XrdXrootdResponse::ID(), XrdOucErrInfo::Reset(), XrdXrootdResponse::Send(), XrdXrootdResponse::Set(), XrdXrootdReqID::setID(), TRACE, TRACE_RSP, and TRACING.
Referenced by XrdXrootdCBJob::DoIt(), and sendError().
void XrdXrootdCallBack::sendVesp | ( | XrdOucErrInfo * | eInfo, |
XResponseType | xrt, | ||
struct iovec * | ioV, | ||
int | ioN | ||
) |
Definition at line 410 of file XrdXrootdCallBack.cc.
References eDest, XrdSysError::Emsg(), XrdOucErrInfo::extData(), XrdOucErrInfo::getErrArg(), XrdOucErrInfo::getErrUser(), XrdXrootdResponse::ID(), XrdOucErrInfo::Reset(), XrdXrootdResponse::Send(), XrdXrootdResponse::Set(), XrdXrootdReqID::setID(), XrdXrootdReqID::Stream(), TRACE, TRACE_RSP, and TRACING.
Referenced by sendError().
|
static |
Definition at line 448 of file XrdXrootdCallBack.cc.
References eDest, XrdGlobal::Sched, and XrdXrootd::SI.
Referenced by XrdXrootdProtocol::Configure().