XrdXrootdTransit Class Reference

#include <XrdXrootdTransit.hh>

Inheritance diagram for XrdXrootdTransit:
Inheritance graph
[legend]
Collaboration diagram for XrdXrootdTransit:
Collaboration graph
[legend]

List of all members.

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 XrdXrootdTransitAlloc (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< XrdXrootdTransitTranLink
SchedReq respJob
SchedReq waitJob
XrdSysMutex runMutex
XrdProtocolrealProt
XrdXrootd::Bridge::ResultrespObj
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

Constructor & Destructor Documentation

XrdXrootdTransit::XrdXrootdTransit (  )  [inline]

Constructor & Destructor.

virtual XrdXrootdTransit::~XrdXrootdTransit (  )  [inline, virtual]

Member Function Documentation

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.

Parameters:
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]

Set sendfile() enablement.

Implements XrdXrootd::Bridge.

References XrdXrootdProtocol::SetSF().

void XrdXrootdTransit::SetWait ( int  wtime,
bool  notify = false 
) [inline, virtual]

Set maximum wait time.

Implements XrdXrootd::Bridge.

References runWCall, and runWMax.

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]

Member Data Documentation

time_t XrdXrootdTransit::cTime [private]
const char* XrdXrootdTransit::pName [private]
const char* XrdXrootdTransit::reqTab [static, private]
char* XrdXrootdTransit::runArgs [private]
bool XrdXrootdTransit::runDone [private]
const char* XrdXrootdTransit::runEText [private]

Referenced by SetWait().

Referenced by SetWait().

int XrdXrootdTransit::wBLen [private]
char* XrdXrootdTransit::wBuff [private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 23 Mar 2020 for xrootd by  doxygen 1.6.1