Go to the documentation of this file.
32 #include <sys/types.h>
48 #define XRDLINK_RDLOCK 0x0001
49 #define XRDLINK_NOCLOSE 0x0002
98 void Bind(pthread_t tid) { (void)tid; }
108 int FDnum() {
int fd =
FD;
return (fd < 0 ? -fd : fd);}
111 {
if (fd < 0) fd = -fd;
116 {
if (fd < 0) fd = -fd;
125 int &numstall,
int &numtardy)
203 int Peek(
char *buff,
int blen,
int timeout=-1);
205 int Recv(
char *buff,
int blen);
206 int Recv(
char *buff,
int blen,
int timeout);
208 int RecvAll(
char *buff,
int blen,
int timeout=-1);
210 int Send(
const char *buff,
int blen);
211 int Send(
const struct iovec *iov,
int iocnt,
int bytes=0);
223 void setID(
const char *userid,
int procid);
225 static void setKWT(
int wkSec,
int kwSec);
235 static int Setup(
int maxfd,
int idlewait);
239 static int Stats(
char *buff,
int blen,
int do_sync=0);
305 #if defined( __linux__ ) || defined( __solaris__ )
int UseCnt()
Definition: XrdLink.hh:247
int Peek(char *buff, int blen, int timeout=-1)
int Terminate(const XrdLink *owner, int fdnum, unsigned int inst)
long long BytesInTot
Definition: XrdLink.hh:288
pthread_t TID
Definition: XrdPoll.hh:91
Definition: XrdPollDev.hh:37
static XrdLink ** LinkTab
Definition: XrdLink.hh:266
XrdProtocol * ProtoAlt
Definition: XrdLink.hh:317
Definition: XrdSysPthread.hh:166
char Lname[232]
Definition: XrdLink.hh:302
unsigned int Inst()
Definition: XrdLink.hh:161
Definition: XrdNetAddrInfo.hh:176
void setID(const char *userid, int procid)
static short waitKill
Definition: XrdLink.hh:273
XrdNetAddrInfo * AddrInfo()
Definition: XrdLink.hh:79
Definition: XrdSendQ.hh:43
char KillCnt
Definition: XrdLink.hh:332
int SfIntr
Definition: XrdLink.hh:295
void SetLocation(XrdNetAddrInfo::LocInfo &loc)
Definition: XrdNetAddr.hh:221
void Bind(pthread_t tid)
Definition: XrdLink.hh:98
time_t timeCon()
Definition: XrdLink.hh:245
void Shutdown(bool getLock)
static XrdInet * XrdNetTCP
Definition: XrdLink.hh:263
static int LinkCount
Definition: XrdLink.hh:281
static long long LinkBytesIn
Definition: XrdLink.hh:277
Definition: XrdNetAddrInfo.hh:54
XrdSysMutex rdMutex
Definition: XrdLink.hh:311
static int maxFD
Definition: XrdLink.hh:286
static const char KillMax
Definition: XrdLink.hh:333
long long BytesIn
Definition: XrdLink.hh:287
char KeepFD
Definition: XrdLink.hh:327
int Send(const sfVec *sdP, int sdn)
static const char KillXwt
Definition: XrdLink.hh:335
static int devNull
Definition: XrdLink.hh:271
int FDnum()
Definition: XrdLink.hh:108
static int LinkStalls
Definition: XrdLink.hh:284
XrdProtocol * getProtocol()
Definition: XrdLink.hh:135
XrdProtocol * Protocol
Definition: XrdLink.hh:316
XrdSysMutex opMutex
Definition: XrdLink.hh:310
static void Init(XrdInet *iP)
Definition: XrdLink.hh:153
static XrdSysMutex statsMutex
Definition: XrdLink.hh:296
int Client(char *buff, int blen)
Definition: XrdPoll.hh:44
static XrdLink * Alloc(XrdNetAddr &peer, int opts=0)
struct pollfd * PollEnt
Definition: XrdLink.hh:319
int stallCntTot
Definition: XrdLink.hh:292
int tardyCntTot
Definition: XrdLink.hh:294
XrdSendQ * sendQ
Definition: XrdLink.hh:315
void setLocation(XrdNetAddrInfo::LocInfo &loc)
Definition: XrdLink.hh:227
static unsigned int LinkAlloc
Definition: XrdLink.hh:268
XrdLink * Next
Definition: XrdLink.hh:308
static int Setup(int maxfd, int idlewait)
Definition: XrdSysPthread.hh:79
bool isFlawed()
Definition: XrdLink.hh:170
char * ID
Definition: XrdLink.hh:148
Definition: XrdSysPthread.hh:404
void Bind()
Definition: XrdLink.hh:97
char LockReads
Definition: XrdLink.hh:326
static int LinkCountMax
Definition: XrdLink.hh:282
Definition: XrdPollPoll.hh:39
static int getName(int &curr, char *bname, int blen, XrdLinkMatch *who=0)
static char * LinkBat
Definition: XrdLink.hh:267
int Send(const char *buff, int blen)
long long BytesOutTot
Definition: XrdLink.hh:290
static const char * TraceID
Definition: XrdLink.hh:270
Definition: XrdScheduler.hh:45
~XrdLink()
Definition: XrdLink.hh:253
char isEnabled
Definition: XrdLink.hh:328
unsigned int Instance
Definition: XrdLink.hh:322
bool isInstance(unsigned int inst)
Definition: XrdLink.hh:182
Definition: XrdLink.hh:64
time_t conTime
Definition: XrdLink.hh:323
XrdSysMutex wrMutex
Definition: XrdLink.hh:312
void armBridge()
Definition: XrdLink.hh:249
Definition: XrdLinkMatch.hh:36
long long BytesOut
Definition: XrdLink.hh:289
char isIdle
Definition: XrdLink.hh:329
int tardyCnt
Definition: XrdLink.hh:293
Definition: XrdInet.hh:49
int sendData(const char *Buff, int Blen)
static XrdSysMutex LTMutex
Definition: XrdLink.hh:265
static short killWait
Definition: XrdLink.hh:272
XrdProtocol * setProtocol(XrdProtocol *pp)
int RecvAll(char *buff, int blen, int timeout=-1)
XrdSysCondVar * KillcvP
Definition: XrdLink.hh:314
const XrdNetAddr * NetAddr()
Definition: XrdLink.hh:201
char * HostName
Definition: XrdLink.hh:303
int hasBridge()
Definition: XrdLink.hh:250
XrdNetAddr Addr
Definition: XrdLink.hh:300
static XrdLink * fd2link(int fd)
Definition: XrdLink.hh:110
static int LinkSfIntr
Definition: XrdLink.hh:285
void UnLock()
Definition: XrdSysPthread.hh:222
static void setKWT(int wkSec, int kwSec)
int FD
Definition: XrdLink.hh:321
static int LinkTimeOuts
Definition: XrdLink.hh:283
Definition: XrdProtocol.hh:117
XrdOucSFVec sfVec
Definition: XrdLink.hh:215
static int sfOK
Definition: XrdLink.hh:213
XrdSysSemaphore IOSemaphore
Definition: XrdLink.hh:313
static XrdSysError * XrdLog
Definition: XrdLink.hh:260
static void Init(XrdSysError *eP, XrdOucTrace *tP, XrdScheduler *sP)
Definition: XrdLink.hh:150
void Hold(int lk)
Definition: XrdLink.hh:137
void syncStats(int *ctime=0)
char Uname[24]
Definition: XrdLink.hh:301
friend class XrdLinkScan
Definition: XrdLink.hh:66
void Lock()
Definition: XrdSysPthread.hh:220
char * Etext
Definition: XrdLink.hh:320
const char * Host()
Definition: XrdLink.hh:146
Definition: XrdPollE.hh:41
int getIOStats(long long &inbytes, long long &outbytes, int &numstall, int &numtardy)
Definition: XrdLink.hh:124
int Recv(char *buff, int blen)
static const char KillMsk
Definition: XrdLink.hh:334
Definition: XrdOucSFVec.hh:43
XrdPoll * Poller
Definition: XrdLink.hh:318
static long long LinkConTime
Definition: XrdLink.hh:279
Definition: XrdOucTrace.hh:36
int InUse
Definition: XrdLink.hh:324
Definition: XrdSysError.hh:90
int stallCnt
Definition: XrdLink.hh:291
const char * Name()
Definition: XrdLink.hh:192
int Send(const struct iovec *iov, int iocnt, int bytes=0)
Definition: XrdNetAddr.hh:42
char inQ
Definition: XrdLink.hh:330
static XrdOucTrace * XrdTrace
Definition: XrdLink.hh:261
static XrdLink * fd2link(int fd, unsigned int inst)
Definition: XrdLink.hh:115
static long long LinkBytesOut
Definition: XrdLink.hh:278
int Recv(char *buff, int blen, int timeout)
static XrdLink * Find(int &curr, XrdLinkMatch *who=0)
static int Stats(char *buff, int blen, int do_sync=0)
int setEtext(const char *text)
static long long LinkCountTot
Definition: XrdLink.hh:280
char isBridged
Definition: XrdLink.hh:331
int HNlen
Definition: XrdLink.hh:304
int doPost
Definition: XrdLink.hh:325
static int LTLast
Definition: XrdLink.hh:269
static XrdScheduler * XrdSched
Definition: XrdLink.hh:262