xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
XrdXrootdTransit Class Reference

#include <XrdXrootdTransit.hh>

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

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 ()
 
- Public Member Functions inherited from XrdXrootd::Bridge
 Bridge ()
 Constructor & Destructor.
 
- Public Member Functions inherited from XrdXrootdProtocol
void aioUpdate (int val)
 
void aioUpdReq (int val)
 
XrdSfsXioHandle Claim (const char *buff, int datasz, int minasz=0) override
 
void DoIt () override
 
int do_WriteSpan ()
 
int getData (gdCallBack *gdcbP, const char *dtype, char *buff, int blen)
 
int getData (gdCallBack *gdcbP, const char *dtype, struct iovec *iov, int iovn)
 
int getDump (const char *dtype, int dlen)
 
int getPathID ()
 
XrdProtocolMatch (XrdLink *lp) override
 
int Process2 ()
 
int ProcSig ()
 
int SendFile (int fildes) override
 
int SendFile (XrdOucSFVec *sfvec, int sfvnum) override
 
void SetFD (int fildes) override
 
int Stats (char *buff, int blen, int do_sync=0) override
 
void StreamNOP ()
 
XrdSfsXioHandle Swap (const char *buff, XrdSfsXioHandle h=0) override
 
XrdXrootdProtocolVerifyStream (int &rc, int pID, bool lok=true)
 
XrdXrootdProtocol operator= (const XrdXrootdProtocol &rhs)=delete
 
 XrdXrootdProtocol ()
 
 ~XrdXrootdProtocol ()
 
- Public Member Functions inherited from XrdProtocol
 XrdProtocol (const char *jname)
 
virtual ~XrdProtocol ()
 
- Public Member Functions inherited from XrdJob
 XrdJob (const char *desc="")
 
virtual ~XrdJob ()
 
- Public Member Functions inherited from XrdXrootd::gdCallBack
virtual void gdFail ()
 
 gdCallBack ()
 
virtual ~gdCallBack ()
 
- Public Member Functions inherited from XrdSfsDio
 XrdSfsDio ()
 Constructor and destructor.
 
virtual ~XrdSfsDio ()
 
- Public Member Functions inherited from XrdSfsXio
 XrdSfsXio (XrdSfsXioImpl &xioimpl)
 
virtual ~XrdSfsXio ()
 Constructor and destructor.
 

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.
 
- Static Public Member Functions inherited from XrdXrootd::Bridge
static BridgeLogin (Result *rsltP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP)
 
- Static Public Member Functions inherited from XrdXrootdProtocol
static char * Buffer (XrdSfsXioHandle h, int *bsz)
 
static int Configure (char *parms, XrdProtocol_Config *pi)
 
static void Reclaim (XrdSfsXioHandle h)
 
- Static Public Member Functions inherited from XrdSfsXio
static char * Buffer (XrdSfsXioHandle theHand, int *buffsz=0)
 
static void Reclaim (XrdSfsXioHandle theHand)
 

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< XrdXrootdTransitTranStack
 
static const char * reqTab
 

Additional Inherited Members

- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 
- Static Public Attributes inherited from XrdXrootdProtocol
static const int maxStreams = 16
 
static int as_maxperlnk
 
static int as_maxperreq
 
static int as_maxpersrv
 
static int as_miniosz
 
static int as_minsfsz
 
static int as_seghalf
 
static int as_segsize
 
static int as_maxstalls
 
static short as_okstutter
 
static short as_timeout
 
static bool as_force
 
static bool as_aioOK
 
static bool as_nosf
 
static bool as_syncw
 
- Protected Member Functions inherited from XrdXrootd::Bridge
virtual ~Bridge ()
 
- Protected Member Functions inherited from XrdXrootdProtocol
void MonAuth ()
 
int SetSF (kXR_char *fhandle, bool seton=false)
 
- Static Protected Member Functions inherited from XrdXrootdProtocol
static unsigned int getSID ()
 
- Protected Attributes inherited from XrdXrootdProtocol
int numReads
 
int numReadP
 
int numReadV
 
int numSegsV
 
int numWritV
 
int numSegsW
 
int numWrites
 
int numFiles
 
int cumReads
 
int cumReadP
 
int cumReadV
 
int cumSegsV
 
int cumWritV
 
int cumSegsW
 
int cumWrites
 
int myStalls
 
long long totReadP
 
XrdLinkLink
 
XrdBufferargp
 
XrdXrootdFileTableFTab
 
XrdXrootdMonitor::User Monitor
 
XrdNetPMark::HandlepmHandle
 
int clientPV
 
int clientRN
 
bool pmDone
 
char reserved [3]
 
short rdType
 
char Status
 
unsigned char CapVer
 
XrdSecEntityClient
 
XrdSecProtocolAuthProt
 
XrdSecEntity Entity
 
XrdSecProtectProtect
 
char * AppName
 
ClientRequest sigReq2Ver
 
SecurityRequest sigReq
 
char sigBuff [64]
 
bool sigNeed
 
bool sigHere
 
bool sigRead
 
bool sigWarn
 
RAtomic_int linkAioReq
 
XrdXrootdPgwCtlpgwCtl
 
char * myBuff
 
int myBlen
 
int myBlast
 
struct XrdXrootdProtocol::GetDataCtl gdCtl
 
XrdXrootdWVInfowvInfo
 
int(XrdXrootdProtocol::* ResumePio )()
 
int(XrdXrootdProtocol::* Resume )()
 
XrdXrootd::IOParms IO
 
int hcPrev
 
int hcNext
 
int hcNow
 
int halfBSize
 
XrdSysMutex unbindMutex
 
XrdSysMutex streamMutex
 
XrdSysSemaphorereTry
 
XrdSysCondVar2endNote
 
XrdXrootdProtocolStream [maxStreams]
 
unsigned int mySID
 
bool isActive
 
bool isLinkWT
 
bool isNOP
 
bool isDead
 
XrdXrootdPiopioFirst
 
XrdXrootdPiopioLast
 
XrdXrootdPiopioFree
 
short PathID
 
bool newPio
 
unsigned char rvSeq
 
unsigned char wvSeq
 
char doTLS
 
bool ableTLS
 
bool isTLS
 
int PrepareCount
 
XrdXrootdReqID ReqID
 
ClientRequest Request
 
XrdXrootdResponse Response
 
- Static Protected Attributes inherited from XrdXrootdProtocol
static XrdXrootdXPath RPList
 
static XrdXrootdXPath RQList
 
static XrdXrootdXPath XPList
 
static XrdSfsFileSystemosFS
 
static XrdSfsFileSystemdigFS
 
static XrdSecServiceCIA
 
static XrdSecProtectorDHS
 
static XrdTlsContexttlsCtx
 
static XrdXrootdFileLockLocker
 
static XrdSchedulerSched
 
static XrdBuffManagerBPool
 
static XrdSysErroreDest
 
static XrdNetPMarkPMark
 
static const char * myInst
 
static const char * TraceID
 
static int RQLxist
 
static int myPID
 
static int myRole
 
static int myRolf
 
static gid_t myGID
 
static uid_t myUID
 
static int myGNLen
 
static int myUNLen
 
static const char * myGName
 
static const char * myUName
 
static time_t keepT
 
static XrdNetSocketAdminSock
 
static int hailWait
 
static int readWait
 
static int Port
 
static int Window
 
static int tlsPort
 
static char * Notify
 
static const char * myCName
 
static int myCNlen
 
static char isRedir
 
static char JobLCL
 
static char JobCKCGI
 
static XrdXrootdJobJobCKS
 
static char * JobCKT
 
static XrdOucTListJobCKTLST
 
static XrdOucReqIDPrepID
 
static uint64_t fsFeatures
 
static struct XrdXrootdProtocol::RD_Table Route [RD_Num]
 
static struct XrdXrootdProtocol::RC_Table RouteClient
 
static int OD_Stall
 
static bool OD_Bypass
 
static bool OD_Redir
 
static bool CL_Redir
 
static bool isProxy
 
static int usxMaxNsz
 
static int usxMaxVsz
 
static char * usxParms
 
static const char Req_TLSData = 0x01
 
static const char Req_TLSGPFile = 0x02
 
static const char Req_TLSLogin = 0x04
 
static const char Req_TLSSess = 0x08
 
static const char Req_TLSTPC = 0x10
 
static char tlsCap
 
static char tlsNot
 
static int maxBuffsz
 
static int maxTransz
 
static int maxReadv_ior
 
static XrdXrootdStatsSI
 
static RAtomic_int srvrAioOps
 
static int hcMax
 
static const int maxPio = 4
 
static bool PrepareAlt
 
static bool LimitError
 
static int PrepareLimit
 

Constructor & Destructor Documentation

◆ XrdXrootdTransit()

XrdXrootdTransit::XrdXrootdTransit ( )
inline

Constructor & Destructor.

◆ ~XrdXrootdTransit()

virtual XrdXrootdTransit::~XrdXrootdTransit ( )
inlinevirtual

Member Function Documentation

◆ Alloc()

static XrdXrootdTransit * XrdXrootdTransit::Alloc ( XrdXrootd::Bridge::Result respP,
XrdLink linkP,
XrdSecEntity seceP,
const char *  nameP,
const char *  protP 
)
static

Get a new transit object.

◆ Attn()

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)

◆ AttnCont()

int XrdXrootdTransit::AttnCont ( XrdXrootdTransPend tP,
int  rcode,
const struct iovec *  ioV,
int  ioN,
int  ioL 
)
private

◆ Disc()

bool XrdXrootdTransit::Disc ( )
virtual

Handle dismantlement.

Implements XrdXrootd::Bridge.

◆ Fail()

bool XrdXrootdTransit::Fail ( int  ecode,
const char *  etext 
)
private

◆ Fatal()

int XrdXrootdTransit::Fatal ( int  rc)
private

◆ Init() [1/2]

void XrdXrootdTransit::Init ( Result rsltP,
XrdLink linkP,
XrdSecEntity seceP,
const char *  nameP,
const char *  protP 
)
private

◆ Init() [2/2]

static void XrdXrootdTransit::Init ( XrdScheduler schedP,
int  qMax,
int  qTTL 
)
static

Perform one-time initialization.

◆ Proceed()

void XrdXrootdTransit::Proceed ( )

Resume processing after a waitresp completion.

◆ Process()

int XrdXrootdTransit::Process ( XrdLink lp)
virtual

Handle link activation (replaces parent activation).

Reimplemented from XrdXrootdProtocol.

◆ Recycle()

void XrdXrootdTransit::Recycle ( XrdLink lp,
int  consec,
const char *  reason 
)
virtual

Handle link shutdown.

Reimplemented from XrdXrootdProtocol.

◆ Redrive()

void XrdXrootdTransit::Redrive ( )

Redrive a request after a wait.

◆ ReqTable()

static const char * XrdXrootdTransit::ReqTable ( )
static

Initialize the valid request table.

◆ ReqWrite()

bool XrdXrootdTransit::ReqWrite ( char *  xdataP,
int  xdataL 
)
private

◆ Run()

bool XrdXrootdTransit::Run ( const char *  xreqP,
char *  xdataP = 0,
int  xdataL = 0 
)
virtual

Inject an xrootd request into the protocol stack.

Parameters
xreqPxrootd request header
xdataPxrootd request data (optional)
xdataLxrootd request data length

Implements XrdXrootd::Bridge.

◆ RunCopy()

bool XrdXrootdTransit::RunCopy ( char *  buffP,
int  buffL 
)
private

◆ Send() [1/3]

int XrdXrootdTransit::Send ( int  rcode,
const struct iovec *  ioVec,
int  ioNum,
int  ioLen 
)

Handle request data response.

◆ Send() [2/3]

int XrdXrootdTransit::Send ( long long  offset,
int  dlen,
int  fdnum 
)

Handle request sendfile response.

◆ Send() [3/3]

int XrdXrootdTransit::Send ( XrdOucSFVec sfvec,
int  sfvnum,
int  dlen 
)

◆ setSF()

int XrdXrootdTransit::setSF ( kXR_char fhandle,
bool  seton = false 
)
inlinevirtual

Set sendfile() enablement.

Implements XrdXrootd::Bridge.

References XrdXrootdProtocol::SetSF().

◆ SetWait()

void XrdXrootdTransit::SetWait ( int  wtime,
bool  notify = false 
)
inlinevirtual

Set maximum wait time.

Implements XrdXrootd::Bridge.

References runWCall, and runWMax.

◆ Wait()

int XrdXrootdTransit::Wait ( XrdXrootd::Bridge::Context rInfo,
const struct iovec *  ioV,
int  ioN,
int  ioL 
)
private

◆ WaitResp()

int XrdXrootdTransit::WaitResp ( XrdXrootd::Bridge::Context rInfo,
const struct iovec *  ioV,
int  ioN,
int  ioL 
)
private

Member Data Documentation

◆ cTime

time_t XrdXrootdTransit::cTime
private

◆ pName

const char* XrdXrootdTransit::pName
private

◆ realProt

XrdProtocol* XrdXrootdTransit::realProt
private

◆ reInvoke

bool XrdXrootdTransit::reInvoke
private

◆ reqTab

const char* XrdXrootdTransit::reqTab
staticprivate

◆ respJob

SchedReq XrdXrootdTransit::respJob
private

◆ respObj

XrdXrootd::Bridge::Result* XrdXrootdTransit::respObj
private

◆ runABsz

int XrdXrootdTransit::runABsz
private

◆ runALen

int XrdXrootdTransit::runALen
private

◆ runArgs

char* XrdXrootdTransit::runArgs
private

◆ runDone

bool XrdXrootdTransit::runDone
private

◆ runError

int XrdXrootdTransit::runError
private

◆ runEText

const char* XrdXrootdTransit::runEText
private

◆ runMutex

XrdSysMutex XrdXrootdTransit::runMutex
private

◆ runStatus

int XrdXrootdTransit::runStatus
private

◆ runWait

int XrdXrootdTransit::runWait
private

◆ runWCall

bool XrdXrootdTransit::runWCall
private

Referenced by SetWait().

◆ runWMax

int XrdXrootdTransit::runWMax
private

Referenced by SetWait().

◆ runWTot

int XrdXrootdTransit::runWTot
private

◆ TranLink

XrdObject<XrdXrootdTransit> XrdXrootdTransit::TranLink
private

◆ TranStack

XrdObjectQ<XrdXrootdTransit> XrdXrootdTransit::TranStack
staticprivate

◆ waitJob

SchedReq XrdXrootdTransit::waitJob
private

◆ wBLen

int XrdXrootdTransit::wBLen
private

◆ wBuff

char* XrdXrootdTransit::wBuff
private

The documentation for this class was generated from the following file: