00001 #ifndef __XRD_POLLDEV_H__ 00002 #define __XRD_POLLDEV_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d P o l l D e v . h h */ 00006 /* */ 00007 /* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */ 00008 /* All Rights Reserved. See XrdInfo.cc for complete License Terms */ 00009 /* Produced by Andrew Hanushevsky for Stanford University under contract */ 00010 /* DE-AC03-76-SFO0515 with the Department of Energy */ 00011 /******************************************************************************/ 00012 00013 // $Id: XrdPollDev.hh 24468 2008-06-22 16:47:03Z ganis $ 00014 00015 #include <poll.h> 00016 00017 #include "Xrd/XrdPoll.hh" 00018 00019 class XrdPollDev : public XrdPoll 00020 { 00021 public: 00022 00023 void Disable(XrdLink *lp, const char *etxt=0); 00024 00025 int Enable(XrdLink *lp); 00026 00027 void Start(XrdSysSemaphore *syncp, int &rc); 00028 00029 XrdPollDev(struct pollfd *ptab, int numfd, int pfd) 00030 {PollTab = ptab; PollMax = numfd; PollDfd = pfd;} 00031 ~XrdPollDev(); 00032 00033 protected: 00034 void Exclude(XrdLink *lp); 00035 int Include(XrdLink *lp) {return 1;} 00036 00037 private: 00038 00039 void doRequests(int maxreq); 00040 void LogEvent(struct pollfd *pp); 00041 int sendCmd(char *cmdbuff, int cmdblen); 00042 00043 struct pollfd *PollTab; 00044 int PollDfd; 00045 int PollMax; 00046 }; 00047 #endif