#include <XrdXrootdTransit.hh>
Classes | |
class | SchedReq |
Public Member Functions | |
bool | Disc () |
Handle dismantlement. | |
void | Proceed () |
Resume processing after a waitresp completion. | |
int | Process (XrdLink *lp) |
Handle link activation (replaces parent activation). | |
void | Recycle (XrdLink *lp, int consec, const char *reason) |
Handle link shutdown. | |
void | Redrive () |
Redrive a request after a wait. | |
bool | Run (const char *xreqP, char *xdataP=0, int xdataL=0) |
Inject an xrootd request into the protocol stack. | |
int | Send (int rcode, const struct iovec *ioVec, int ioNum, int ioLen) |
Handle request data response. | |
int | Send (long long offset, int dlen, int fdnum) |
Handle request sendfile response. | |
int | Send (XrdOucSFVec *sfvec, int sfvnum, int dlen) |
int | setSF (kXR_char *fhandle, bool seton=false) |
Set sendfile() enablement. | |
void | SetWait (int wtime, bool notify=false) |
Set maximum wait time. | |
XrdXrootdTransit () | |
Constructor & Destructor. | |
virtual | ~XrdXrootdTransit () |
Static Public Member Functions | |
static XrdXrootdTransit * | Alloc (XrdXrootd::Bridge::Result *respP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP) |
Get a new transit object. | |
static int | Attn (XrdLink *lP, short *theSID, int rcode, const struct iovec *ioVec, int ioNum, int ioLen) |
Handle attention response (i.e. async response). | |
static void | Init (XrdScheduler *schedP, int qMax, int qTTL) |
Perform one-time initialization. | |
static const char * | ReqTable () |
Initialize the valid request table. | |
Private Member Functions | |
int | AttnCont (XrdXrootdTransPend *tP, int rcode, const struct iovec *ioV, int ioN, int ioL) |
bool | Fail (int ecode, const char *etext) |
int | Fatal (int rc) |
void | Init (Result *rsltP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP) |
bool | ReqWrite (char *xdataP, int xdataL) |
bool | RunCopy (char *buffP, int buffL) |
int | Wait (XrdXrootd::Bridge::Context &rInfo, const struct iovec *ioV, int ioN, int ioL) |
int | WaitResp (XrdXrootd::Bridge::Context &rInfo, const struct iovec *ioV, int ioN, int ioL) |
Private Attributes | |
XrdObject< XrdXrootdTransit > | TranLink |
SchedReq | respJob |
SchedReq | waitJob |
XrdSysMutex | runMutex |
XrdProtocol * | realProt |
XrdXrootd::Bridge::Result * | respObj |
const char * | runEText |
char * | runArgs |
int | runALen |
int | runABsz |
int | runError |
int | runStatus |
int | runWait |
int | runWTot |
int | runWMax |
bool | runDone |
bool | reInvoke |
bool | runWCall |
int | wBLen |
char * | wBuff |
const char * | pName |
time_t | cTime |
Static Private Attributes | |
static XrdObjectQ < XrdXrootdTransit > | TranStack |
static const char * | reqTab |
XrdXrootdTransit::XrdXrootdTransit | ( | ) | [inline] |
Constructor & Destructor.
virtual XrdXrootdTransit::~XrdXrootdTransit | ( | ) | [inline, virtual] |
static XrdXrootdTransit* XrdXrootdTransit::Alloc | ( | XrdXrootd::Bridge::Result * | respP, | |
XrdLink * | linkP, | |||
XrdSecEntity * | seceP, | |||
const char * | nameP, | |||
const char * | protP | |||
) | [static] |
Get a new transit object.
static int XrdXrootdTransit::Attn | ( | XrdLink * | lP, | |
short * | theSID, | |||
int | rcode, | |||
const struct iovec * | ioVec, | |||
int | ioNum, | |||
int | ioLen | |||
) | [static] |
Handle attention response (i.e. async response).
int XrdXrootdTransit::AttnCont | ( | XrdXrootdTransPend * | tP, | |
int | rcode, | |||
const struct iovec * | ioV, | |||
int | ioN, | |||
int | ioL | |||
) | [private] |
bool XrdXrootdTransit::Disc | ( | ) | [virtual] |
Handle dismantlement.
Implements XrdXrootd::Bridge.
bool XrdXrootdTransit::Fail | ( | int | ecode, | |
const char * | etext | |||
) | [private] |
int XrdXrootdTransit::Fatal | ( | int | rc | ) | [private] |
void XrdXrootdTransit::Init | ( | Result * | rsltP, | |
XrdLink * | linkP, | |||
XrdSecEntity * | seceP, | |||
const char * | nameP, | |||
const char * | protP | |||
) | [private] |
static void XrdXrootdTransit::Init | ( | XrdScheduler * | schedP, | |
int | qMax, | |||
int | qTTL | |||
) | [static] |
Perform one-time initialization.
void XrdXrootdTransit::Proceed | ( | ) |
Resume processing after a waitresp completion.
int XrdXrootdTransit::Process | ( | XrdLink * | lp | ) | [virtual] |
Handle link activation (replaces parent activation).
Reimplemented from XrdXrootdProtocol.
void XrdXrootdTransit::Recycle | ( | XrdLink * | lp, | |
int | consec, | |||
const char * | reason | |||
) | [virtual] |
Handle link shutdown.
Reimplemented from XrdXrootdProtocol.
void XrdXrootdTransit::Redrive | ( | ) |
Redrive a request after a wait.
static const char* XrdXrootdTransit::ReqTable | ( | ) | [static] |
Initialize the valid request table.
bool XrdXrootdTransit::ReqWrite | ( | char * | xdataP, | |
int | xdataL | |||
) | [private] |
bool XrdXrootdTransit::Run | ( | const char * | xreqP, | |
char * | xdataP = 0 , |
|||
int | xdataL = 0 | |||
) | [virtual] |
Inject an xrootd request into the protocol stack.
xreqP | xrootd request header | |
xdataP | xrootd request data (optional) | |
xdataL | xrootd request data length |
Implements XrdXrootd::Bridge.
bool XrdXrootdTransit::RunCopy | ( | char * | buffP, | |
int | buffL | |||
) | [private] |
int XrdXrootdTransit::Send | ( | XrdOucSFVec * | sfvec, | |
int | sfvnum, | |||
int | dlen | |||
) |
int XrdXrootdTransit::Send | ( | long long | offset, | |
int | dlen, | |||
int | fdnum | |||
) |
Handle request sendfile response.
int XrdXrootdTransit::Send | ( | int | rcode, | |
const struct iovec * | ioVec, | |||
int | ioNum, | |||
int | ioLen | |||
) |
Handle request data response.
int XrdXrootdTransit::setSF | ( | kXR_char * | fhandle, | |
bool | seton = false | |||
) | [inline, virtual] |
void XrdXrootdTransit::SetWait | ( | int | wtime, | |
bool | notify = false | |||
) | [inline, virtual] |
int XrdXrootdTransit::Wait | ( | XrdXrootd::Bridge::Context & | rInfo, | |
const struct iovec * | ioV, | |||
int | ioN, | |||
int | ioL | |||
) | [private] |
int XrdXrootdTransit::WaitResp | ( | XrdXrootd::Bridge::Context & | rInfo, | |
const struct iovec * | ioV, | |||
int | ioN, | |||
int | ioL | |||
) | [private] |
time_t XrdXrootdTransit::cTime [private] |
const char* XrdXrootdTransit::pName [private] |
XrdProtocol* XrdXrootdTransit::realProt [private] |
bool XrdXrootdTransit::reInvoke [private] |
const char* XrdXrootdTransit::reqTab [static, private] |
SchedReq XrdXrootdTransit::respJob [private] |
int XrdXrootdTransit::runABsz [private] |
int XrdXrootdTransit::runALen [private] |
char* XrdXrootdTransit::runArgs [private] |
bool XrdXrootdTransit::runDone [private] |
int XrdXrootdTransit::runError [private] |
const char* XrdXrootdTransit::runEText [private] |
XrdSysMutex XrdXrootdTransit::runMutex [private] |
int XrdXrootdTransit::runStatus [private] |
int XrdXrootdTransit::runWait [private] |
bool XrdXrootdTransit::runWCall [private] |
Referenced by SetWait().
int XrdXrootdTransit::runWMax [private] |
Referenced by SetWait().
int XrdXrootdTransit::runWTot [private] |
XrdObject<XrdXrootdTransit> XrdXrootdTransit::TranLink [private] |
XrdObjectQ<XrdXrootdTransit> XrdXrootdTransit::TranStack [static, private] |
SchedReq XrdXrootdTransit::waitJob [private] |
int XrdXrootdTransit::wBLen [private] |
char* XrdXrootdTransit::wBuff [private] |