xrootd
XrdPollPoll.hh
Go to the documentation of this file.
1 #ifndef __XRD_POLLPOLL_H__
2 #define __XRD_POLLPOLL_H__
3 /******************************************************************************/
4 /* */
5 /* X r d P o l l P o l l . h h */
6 /* */
7 /* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */
8 /* All Rights Reserved. See XrdInfo.cc for complete License Terms */
9 /* Produced by Andrew Hanushevsky for Stanford University under contract */
10 /* DE-AC03-76-SFO0515 with the Department of Energy */
11 /******************************************************************************/
12 
13 // $Id$
14 
15 #include <poll.h>
16 
17 #include "Xrd/XrdPoll.hh"
18 
19 class XrdLink;
20 
22 {
23 public:
24 
25  void Detach(XrdLink *lp);
26 
27  void Disable(XrdLink *lp, const char *etxt=0);
28 
29  int Enable(XrdLink *lp);
30 
31  void Start(XrdSysSemaphore *syncp, int &rc);
32 
33  XrdPollPoll(struct pollfd *pp, int numfd);
34  ~XrdPollPoll();
35 
36 protected:
37  void doDetach(int pti);
38  void Exclude(XrdLink *lp);
39  int Include(XrdLink *lp);
40 
41 private:
42 
43 void doRequests(int maxreq);
44 void dqLink(XrdLink *lp);
45 void LogEvent(int req, int pollfd, int cmdfd);
46 void Recover(int numleft);
47 void Restart(int ecode);
48 
49 struct pollfd *PollTab; //<---
50  int PollTNum; // PollMutex protects these elements
51  XrdLink *PollQ; //<---
53  int maxent;
54 };
55 #endif