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
95 void Bind(pthread_t tid) { (void)tid; }
97 int Client(
char *buff,
int blen);
99 int Close(
int defer=0);
108 {
if (fd < 0) fd = -fd;
113 {
if (fd < 0) fd = -fd;
122 int &numstall,
int &numtardy)
200 int Peek(
char *buff,
int blen,
int timeout=-1);
202 int Recv(
char *buff,
int blen);
203 int Recv(
char *buff,
int blen,
int timeout);
205 int RecvAll(
char *buff,
int blen,
int timeout=-1);
207 int Send(
const char *buff,
int blen);
208 int Send(
const struct iovec *iov,
int iocnt,
int bytes=0);
214 int Send(
const sfVec *sdP,
int sdn);
220 void setID(
const char *userid,
int procid);
222 static void setKWT(
int wkSec,
int kwSec);
230 static int Setup(
int maxfd,
int idlewait);
232 static int Stats(
char *buff,
int blen,
int do_sync=0);
251 int sendData(
const char *Buff,
int Blen);
int Client(char *buff, int blen)
void setLocation(XrdNetAddrInfo::LocInfo &loc)
Definition: XrdLink.hh:224
int HNlen
Definition: XrdLink.hh:296
static XrdLink * fd2link(int fd, unsigned int inst)
Definition: XrdLink.hh:112
char isEnabled
Definition: XrdLink.hh:317
int FD
Definition: XrdLink.hh:310
XrdLink * Next
Definition: XrdLink.hh:304
static void setKWT(int wkSec, int kwSec)
friend class XrdPollDev
Definition: XrdLink.hh:68
XrdOucSFVec sfVec
Definition: XrdLink.hh:212
static XrdSysError * XrdLog
Definition: XrdLink.hh:253
void Hold(int lk)
Definition: XrdLink.hh:134
void syncStats(int *ctime=0)
long long BytesInTot
Definition: XrdLink.hh:280
static int devNull
Definition: XrdLink.hh:264
XrdProtocol * ProtoAlt
Definition: XrdLink.hh:306
unsigned int Inst()
Definition: XrdLink.hh:158
static int LinkCountMax
Definition: XrdLink.hh:275
XrdProtocol * Protocol
Definition: XrdLink.hh:305
char LockReads
Definition: XrdLink.hh:315
static const char KillXwt
Definition: XrdLink.hh:324
XrdProtocol * setProtocol(XrdProtocol *pp)
static short killWait
Definition: XrdLink.hh:265
friend class XrdPoll
Definition: XrdLink.hh:66
XrdSysMutex opMutex
Definition: XrdLink.hh:299
int hasBridge()
Definition: XrdLink.hh:243
XrdNetAddr Addr
Definition: XrdLink.hh:292
static int LinkSfIntr
Definition: XrdLink.hh:278
static XrdLink * fd2link(int fd)
Definition: XrdLink.hh:107
struct pollfd * PollEnt
Definition: XrdLink.hh:308
static int LinkTimeOuts
Definition: XrdLink.hh:276
Definition: XrdProtocol.hh:116
int doPost
Definition: XrdLink.hh:314
int stallCntTot
Definition: XrdLink.hh:284
void Bind(pthread_t tid)
Definition: XrdLink.hh:95
time_t timeCon()
Definition: XrdLink.hh:238
static long long LinkBytesIn
Definition: XrdLink.hh:270
char * Etext
Definition: XrdLink.hh:309
int UseCnt()
Definition: XrdLink.hh:240
int Terminate(const XrdLink *owner, int fdnum, unsigned int inst)
char * ID
Definition: XrdLink.hh:145
static const char KillMsk
Definition: XrdLink.hh:323
long long BytesIn
Definition: XrdLink.hh:279
static int Setup(int maxfd, int idlewait)
void Bind()
Definition: XrdLink.hh:94
int InUse
Definition: XrdLink.hh:313
Definition: XrdOucTrace.hh:35
Definition: XrdSysError.hh:87
static XrdLink ** LinkTab
Definition: XrdLink.hh:259
Definition: XrdScheduler.hh:44
int stallCnt
Definition: XrdLink.hh:283
Definition: XrdSysPthread.hh:140
static int Stats(char *buff, int blen, int do_sync=0)
char inQ
Definition: XrdLink.hh:319
char * HostName
Definition: XrdLink.hh:295
static unsigned int LinkAlloc
Definition: XrdLink.hh:261
unsigned int Instance
Definition: XrdLink.hh:311
int setEtext(const char *text)
static void Init(XrdSysError *eP, XrdOucTrace *tP, XrdScheduler *sP)
Definition: XrdLink.hh:147
Definition: XrdLink.hh:62
static int LinkCount
Definition: XrdLink.hh:274
XrdSysSemaphore IOSemaphore
Definition: XrdLink.hh:302
Definition: XrdSysPthread.hh:53
const char * Host()
Definition: XrdLink.hh:143
int Peek(char *buff, int blen, int timeout=-1)
Definition: XrdSysPthread.hh:329
XrdPoll * Poller
Definition: XrdLink.hh:307
long long BytesOut
Definition: XrdLink.hh:281
char Lname[232]
Definition: XrdLink.hh:294
static int getName(int &curr, char *bname, int blen, XrdLinkMatch *who=0)
static int LinkStalls
Definition: XrdLink.hh:277
static XrdSysMutex statsMutex
Definition: XrdLink.hh:288
XrdProtocol * getProtocol()
Definition: XrdLink.hh:132
~XrdLink()
Definition: XrdLink.hh:246
static long long LinkBytesOut
Definition: XrdLink.hh:271
static XrdLink * Find(int &curr, XrdLinkMatch *who=0)
void setID(const char *userid, int procid)
static short waitKill
Definition: XrdLink.hh:266
int Send(const char *buff, int blen)
friend class XrdPollE
Definition: XrdLink.hh:69
char isBridged
Definition: XrdLink.hh:320
static XrdScheduler * XrdSched
Definition: XrdLink.hh:255
static long long LinkCountTot
Definition: XrdLink.hh:273
static XrdInet * XrdNetTCP
Definition: XrdLink.hh:256
pthread_t TID
Definition: XrdLink.hh:297
XrdSysMutex rdMutex
Definition: XrdLink.hh:300
friend class XrdLinkScan
Definition: XrdLink.hh:65
static const char KillMax
Definition: XrdLink.hh:322
void Lock()
Definition: XrdSysPthread.hh:149
bool isInstance(unsigned int inst)
Definition: XrdLink.hh:179
char KeepFD
Definition: XrdLink.hh:316
bool isFlawed()
Definition: XrdLink.hh:167
XrdSysMutex wrMutex
Definition: XrdLink.hh:301
char isIdle
Definition: XrdLink.hh:318
int FDnum()
Definition: XrdLink.hh:105
const XrdNetAddr * NetAddr()
Definition: XrdLink.hh:198
int sendData(const char *Buff, int Blen)
static XrdOucTrace * XrdTrace
Definition: XrdLink.hh:254
static char * LinkBat
Definition: XrdLink.hh:260
XrdSysCondVar * KillcvP
Definition: XrdLink.hh:303
const char * Name()
Definition: XrdLink.hh:189
XrdNetAddrInfo * AddrInfo()
Definition: XrdLink.hh:78
char KillCnt
Definition: XrdLink.hh:321
int RecvAll(char *buff, int blen, int timeout=-1)
static XrdLink * Alloc(XrdNetAddr &peer, int opts=0)
long long BytesOutTot
Definition: XrdLink.hh:282
friend class XrdPollPoll
Definition: XrdLink.hh:67
static const char * TraceID
Definition: XrdLink.hh:263
int SfIntr
Definition: XrdLink.hh:287
static int LTLast
Definition: XrdLink.hh:262
char Uname[24]
Definition: XrdLink.hh:293
Definition: XrdLinkMatch.hh:35
void UnLock()
Definition: XrdSysPthread.hh:151
int tardyCntTot
Definition: XrdLink.hh:286
time_t conTime
Definition: XrdLink.hh:312
static int sfOK
Definition: XrdLink.hh:210
static long long LinkConTime
Definition: XrdLink.hh:272
void armBridge()
Definition: XrdLink.hh:242
int tardyCnt
Definition: XrdLink.hh:285
int getIOStats(long long &inbytes, long long &outbytes, int &numstall, int &numtardy)
Definition: XrdLink.hh:121
int Recv(char *buff, int blen)
static XrdSysMutex LTMutex
Definition: XrdLink.hh:258
static void Init(XrdInet *iP)
Definition: XrdLink.hh:150