|
XRootD
|
#include <XrdXrootdTransit.hh>
Inheritance diagram for XrdXrootdTransit:
Collaboration diagram for XrdXrootdTransit:Public Member Functions | |
| XrdXrootdTransit () | |
| Constructor & Destructor. | |
| virtual | ~XrdXrootdTransit () |
| 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. | |
Public Member Functions inherited from XrdXrootd::Bridge | |
| Bridge () | |
| Constructor & Destructor. | |
Public Member Functions inherited from XrdXrootdProtocol | |
| XrdXrootdProtocol () | |
| ~XrdXrootdProtocol () | |
| void | aioUpdate (int val) |
| void | aioUpdReq (int val) |
| XrdSfsXioHandle | Claim (const char *buff, int datasz, int minasz=0) override |
| int | do_WriteSpan () |
| void | DoIt () override |
| 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 () |
| XrdProtocol * | Match (XrdLink *lp) override |
| XrdXrootdProtocol | operator= (const XrdXrootdProtocol &rhs)=delete |
| 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 |
| XrdXrootdProtocol * | VerifyStream (int &rc, int pID, bool lok=true) |
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 | |
| gdCallBack () | |
| virtual | ~gdCallBack () |
| virtual void | gdFail () |
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 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. | |
Static Public Member Functions inherited from XrdXrootd::Bridge | |
| static Bridge * | Login (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) |
Additional Inherited Members | |
Public Attributes inherited from XrdJob | |
| const char * | Comment |
| XrdJob * | NextJob |
Static Public Attributes inherited from XrdXrootdProtocol | |
| static bool | as_aioOK = true |
| static bool | as_force = false |
| static int | as_maxperlnk = 8 |
| static int | as_maxperreq = 8 |
| static int | as_maxpersrv = 4096 |
| static int | as_maxstalls = 4 |
| static int | as_miniosz = 98304 |
| static int | as_minsfsz = 8192 |
| static bool | as_nosf = false |
| static short | as_okstutter = 1 |
| static int | as_seghalf = 32768 |
| static int | as_segsize = 65536 |
| static bool | as_syncw = false |
| static short | as_timeout = 45 |
| static const int | maxStreams = 16 |
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 | |
| bool | ableTLS |
| char * | AppName |
| XrdBuffer * | argp |
| XrdSecProtocol * | AuthProt |
| unsigned char | CapVer |
| XrdSecEntity * | Client |
| int | clientPV |
| int | clientRN |
| int | cumReadP |
| int | cumReads |
| int | cumReadV |
| int | cumSegsV |
| int | cumSegsW |
| int | cumWrites |
| int | cumWritV |
| char | doTLS |
| XrdSysCondVar2 * | endNote |
| XrdSecEntity | Entity |
| XrdXrootdFileTable * | FTab |
| struct XrdXrootdProtocol::GetDataCtl | gdCtl |
| int | halfBSize |
| int | hcNext |
| int | hcNow |
| int | hcPrev |
| XrdXrootd::IOParms | IO |
| bool | isActive |
| bool | isDead |
| bool | isLinkWT |
| bool | isNOP |
| bool | isTLS |
| XrdLink * | Link |
| RAtomic_int | linkAioReq |
| XrdXrootdMonitor::User | Monitor |
| int | myBlast |
| int | myBlen |
| char * | myBuff |
| unsigned int | mySID |
| int | myStalls |
| bool | newPio |
| int | numFiles |
| int | numReadP |
| int | numReads |
| int | numReadV |
| int | numSegsV |
| int | numSegsW |
| int | numWrites |
| int | numWritV |
| short | PathID |
| XrdXrootdPgwCtl * | pgwCtl |
| XrdXrootdPio * | pioFirst |
| XrdXrootdPio * | pioFree |
| XrdXrootdPio * | pioLast |
| bool | pmDone |
| XrdNetPMark::Handle * | pmHandle |
| int | PrepareCount |
| XrdSecProtect * | Protect |
| short | rdType |
| XrdXrootdReqID | ReqID |
| ClientRequest | Request |
| char | reserved [3] |
| XrdXrootdResponse | Response |
| int(XrdXrootdProtocol::* | Resume )() |
| int(XrdXrootdProtocol::* | ResumePio )() |
| XrdSysSemaphore * | reTry |
| unsigned char | rvSeq |
| char | sigBuff [64] |
| bool | sigHere |
| bool | sigNeed |
| bool | sigRead |
| SecurityRequest | sigReq |
| ClientRequest | sigReq2Ver |
| bool | sigWarn |
| char | Status |
| XrdXrootdProtocol * | Stream [maxStreams] |
| XrdSysMutex | streamMutex |
| long long | totReadP |
| XrdSysMutex | unbindMutex |
| XrdXrootdWVInfo * | wvInfo |
| unsigned char | wvSeq |
Static Protected Attributes inherited from XrdXrootdProtocol | |
| static XrdNetSocket * | AdminSock = 0 |
| static XrdBuffManager * | BPool |
| static XrdSecService * | CIA = 0 |
| static bool | CL_Redir = false |
| static XrdSecProtector * | DHS = 0 |
| static XrdSfsFileSystem * | digFS = 0 |
| static XrdSysError & | eDest = XrdXrootd::eLog |
| static uint64_t | fsFeatures = 0 |
| static int | hailWait |
| static int | hcMax = 28657 |
| static bool | isProxy = false |
| static char | isRedir = 0 |
| static char | JobCKCGI =0 |
| static XrdXrootdJob * | JobCKS = 0 |
| static char * | JobCKT = 0 |
| static XrdOucTList * | JobCKTLST = 0 |
| static char | JobLCL = 0 |
| static time_t | keepT = 86400 |
| static bool | LimitError = true |
| static XrdXrootdFileLock * | Locker |
| static int | maxBuffsz |
| static const int | maxPio = 4 |
| static int | maxReadv_ior |
| static int | maxTransz = 262144 |
| static const char * | myCName = 0 |
| static int | myCNlen = 0 |
| static gid_t | myGID = 0 |
| static const char * | myGName = "?" |
| static int | myGNLen = 1 |
| static const char * | myInst = 0 |
| static int | myPID = static_cast<int>(getpid()) |
| static int | myRole = 0 |
| static int | myRolf = 0 |
| static uid_t | myUID = 0 |
| static const char * | myUName = "?" |
| static int | myUNLen = 1 |
| static char * | Notify = 0 |
| static bool | OD_Bypass = false |
| static bool | OD_Redir = false |
| static int | OD_Stall = 33 |
| static XrdSfsFileSystem * | osFS |
| static XrdNetPMark * | PMark = 0 |
| static int | Port |
| static bool | PrepareAlt = false |
| static int | PrepareLimit = -1 |
| static XrdOucReqID * | PrepID = 0 |
| static int | readWait |
| static int | redirIPHold = 8*60*60 |
| static XrdXrootdRedirPI * | RedirPI = 0 |
| 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 struct XrdXrootdProtocol::RD_Table | Route [RD_Num] |
| static struct XrdXrootdProtocol::RC_Table | RouteClient |
| static XrdXrootdXPath | RPList |
| static XrdXrootdXPath | RQList |
| static int | RQLxist = 0 |
| static XrdScheduler * | Sched |
| static XrdXrootdStats * | SI |
| static RAtomic_int | srvrAioOps = {0} |
| static char | tlsCap = 0 |
| static XrdTlsContext * | tlsCtx = 0 |
| static char | tlsNot = 0 |
| static int | tlsPort = 0 |
| static const char * | TraceID = "Protocol" |
| static int | usxMaxNsz = kXR_faMaxNlen |
| static int | usxMaxVsz = kXR_faMaxVlen |
| static char * | usxParms = 0 |
| static int | Window |
| static XrdXrootdXPath | XPList |
Definition at line 55 of file XrdXrootdTransit.hh.
|
inline |
Constructor & Destructor.
Definition at line 162 of file XrdXrootdTransit.hh.
References XrdXrootdTransit(), Proceed(), and Redrive().
Referenced by XrdXrootdTransit(), and Alloc().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
Definition at line 168 of file XrdXrootdTransit.hh.
|
static |
Get a new transit object.
Definition at line 77 of file XrdXrootdTransit.cc.
References XrdXrootdTransit(), and Init().
Referenced by XrdXrootd::Bridge::Login().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Handle attention response (i.e. async response)
Definition at line 97 of file XrdXrootdTransit.cc.
References XrdXrootdTransPend::bridge, XrdLink::ID, XrdXrootdTransPend::Remove(), and TRACE.
Referenced by XrdXrootdResponse::Send().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Handle dismantlement.
Implements XrdXrootd::Bridge.
Definition at line 158 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::Link, and XrdXrootdProtocol::Recycle().
Here is the call graph for this function:
|
static |
Perform one-time initialization.
Definition at line 208 of file XrdXrootdTransit.cc.
References TRACE_MEM, XrdJob::XrdScheduler, and XrdXrootdTrace.
Referenced by Alloc(), and XrdXrootdProtocol::Configure().
Here is the call graph for this function:
Here is the caller graph for this function:| void XrdXrootdTransit::Proceed | ( | ) |
Resume processing after a waitresp completion.
Definition at line 326 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::Link, and Process().
Referenced by XrdXrootdTransit().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Handle link activation (replaces parent activation).
Reimplemented from XrdXrootdProtocol.
Definition at line 345 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::Process(), XrdXrootdProtocol::Process2(), and XrdXrootdProtocol::Resume.
Referenced by Proceed().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Handle link shutdown.
Reimplemented from XrdXrootdProtocol.
Definition at line 390 of file XrdXrootdTransit.cc.
References XrdXrootdTransPend::Clear(), EMSG, XrdXrootdProtocol::Recycle(), XrdXrootdProtocol::Sched, and TRACEP.
Here is the call graph for this function:| void XrdXrootdTransit::Redrive | ( | ) |
Redrive a request after a wait.
Definition at line 431 of file XrdXrootdTransit.cc.
References kXR_error, kXR_NoMemory, XrdXrootdProtocol::Link, XrdXrootdProtocol::Process2(), Send(), and TRACEP.
Referenced by XrdXrootdTransit().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Initialize the valid request table.
Definition at line 494 of file XrdXrootdTransit.cc.
References kXR_auth, kXR_chmod, kXR_close, kXR_dirlist, KXR_INDEX, kXR_locate, kXR_mkdir, kXR_mv, kXR_open, kXR_prepare, kXR_protocol, kXR_query, kXR_read, kXR_readv, kXR_rm, kXR_rmdir, kXR_set, kXR_stat, kXR_statx, kXR_sync, kXR_truncate, and kXR_write.
|
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.
Definition at line 558 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::argp, kXR_ArgInvalid, kXR_auth, kXR_NoMemory, kXR_truncate, kXR_Unsupported, kXR_write, XrdXrootdProtocol::myBlen, XrdXrootdProtocol::myBuff, XrdXrootdProtocol::Process2(), XrdXrootdProtocol::Request, XrdXrootdProtocol::Response, XrdXrootdProtocol::Resume, and TRACEP.
Here is the call graph for this function:| int XrdXrootdTransit::Send | ( | int | rcode, |
| const struct iovec * | ioVec, | ||
| int | ioNum, | ||
| int | ioLen ) |
Handle request data response.
Definition at line 660 of file XrdXrootdTransit.cc.
References eMsg, kXR_error, kXR_ok, kXR_oksofar, kXR_redirect, kXR_ServerError, kXR_wait, kXR_waitresp, XrdXrootdProtocol::Link, XrdXrootdProtocol::Request, and XRD_GETNUM.
Referenced by Redrive().
Here is the caller graph for this function:| int XrdXrootdTransit::Send | ( | long long | offset, |
| int | dlen, | ||
| int | fdnum ) |
Handle request sendfile response.
Definition at line 712 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::Link, and XrdXrootdProtocol::Request.
| int XrdXrootdTransit::Send | ( | XrdOucSFVec * | sfvec, |
| int | sfvnum, | ||
| int | dlen ) |
Definition at line 726 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::Link, and XrdXrootdProtocol::Request.
|
inlinevirtual |
Set sendfile() enablement.
Implements XrdXrootd::Bridge.
Definition at line 148 of file XrdXrootdTransit.hh.
References XrdXrootdProtocol::SetSF().
Here is the call graph for this function:
|
inlinevirtual |
Set maximum wait time.
Implements XrdXrootd::Bridge.
Definition at line 155 of file XrdXrootdTransit.hh.