xrootd
XrdPollDev.hh
Go to the documentation of this file.
1 #ifndef __XRD_POLLDEV_H__
2 #define __XRD_POLLDEV_H__
3 /******************************************************************************/
4 /* */
5 /* X r d P o l l D e v . 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 XrdPollDev : public XrdPoll
20 {
21 public:
22 
23  void Disable(XrdLink *lp, const char *etxt=0);
24 
25  int Enable(XrdLink *lp);
26 
27  void Start(XrdSysSemaphore *syncp, int &rc);
28 
29  XrdPollDev(struct pollfd *ptab, int numfd, int pfd)
30  {PollTab = ptab; PollMax = numfd; PollDfd = pfd;}
31  ~XrdPollDev();
32 
33 protected:
34  void Exclude(XrdLink *lp);
35  int Include(XrdLink *lp) {return 1;}
36 
37 private:
38 
39 void doRequests(int maxreq);
40 void LogEvent(struct pollfd *pp);
41 int sendCmd(char *cmdbuff, int cmdblen);
42 
43 struct pollfd *PollTab;
44  int PollDfd;
45  int PollMax;
46 };
47 #endif