libutil++  1.9.3
 All Classes Functions Variables
SocketTrigger.h
1 /*
2 ** libutil++
3 ** $Id: SocketTrigger.h 1653 2016-02-28 19:54:59Z sella $
4 ** Copyright (c) 2011-2016 Digital Genesis, LLC. All Rights Reserved.
5 ** Released under the LGPL Version 2.1 License.
6 ** http://www.digitalgenesis.com
7 */
8 
9 #ifndef __libutilxx__sella__net__SocketTrigger_H__
10 #define __libutilxx__sella__net__SocketTrigger_H__
11 
12 #include "../../common.h"
13 #include "SocketPair.h"
14 
15 #include <sys/types.h>
16 #include <sys/socket.h>
17 
18 namespace sella {
19  namespace net {
20  class SocketTrigger;
21  }
22 }
23 
25  public:
26  typedef std::shared_ptr<SocketTrigger> shared;
27  typedef SocketTrigger *ptr;
28 
29  public:
30  SocketTrigger() throw (SocketException);
31  SocketTrigger(const SocketTrigger &sock) = delete;
32  virtual ~SocketTrigger();
33  void operator=(const SocketTrigger &sock) = delete;
34 
35  UnixSocket::shared getSocket(void) const throw ();
36 
37  int getFD(void) const;
38 
39  void set(void) throw (SocketException);
40  void clear(void) const throw (SocketException);
41 
42  bool isSet(void) const throw (SocketException);
43 
44  static const SocketTrigger::shared shared_ptr() throw (SocketException);
45 };
46 
47 #endif
48 
49 /*
50 ** vim: noet ts=3 sw=3
51 */