rasdaman complete source
akgnet_selector.hh
Go to the documentation of this file.
1 /*
2 * This file is part of rasdaman community.
3 *
4 * Rasdaman community is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * Rasdaman community is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
18 rasdaman GmbH.
19 *
20 * For more information please see <http://www.rasdaman.org>
21 * or contact Peter Baumann via <baumann@rasdaman.com>.
22 /
34 #ifndef AKGNET_SELECTOR
35 #define AKGNET_SELECTOR
36 
37 #include "akgnet_common.hh"
38 
39 namespace akg
40 {
41 
49 class Selector
50 {
51 public:
53  Selector() throw();
54 
56  void setTimeout(int sec,int milisec) throw();
57 
59  void disableTimeout() throw();
60 
62  void setRead(int fdescr) throw();
64  void clearRead(int fdescr) throw();
65 
67  void setWrite(int fdescr) throw();
69  void clearWrite(int fdescr) throw();
70 
72  int operator()() throw();
73 
75  bool isRead(int fdescr) throw();
77  bool isWrite(int fdescr) throw();
78 
82  void closeForcedAllFileDescriptors() throw();
83 private:
84  fd_set watchReadFdSet;
85  fd_set watchWriteFdSet;
86  fd_set watchExceptFdSet; // unused but ...
87 
88  fd_set resultReadFdSet;
89  fd_set resultWriteFdSet;
90  fd_set resultExceptFdSet; // unused but ...
91 
92  struct timeval tvinit;
93  struct timeval tv;
94  timeval *tvptr;
95 
96 };
97 
98 } // namespace
99 #endif