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