libutil++  1.9.3
 All Classes Functions Variables
SocketTrigger.cpp
1 /*
2 ** libutil++
3 ** $Id: SocketTrigger.cpp 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 static const char rcsid[] __attribute__((used)) = "$Id: SocketTrigger.cpp 1653 2016-02-28 19:54:59Z sella $";
10 
11 #include "SocketTrigger.h"
12 
13 using namespace sella::net;
14 
15 SocketTrigger::SocketTrigger() throw (SocketException) {
16 }
17 
18 SocketTrigger::~SocketTrigger() {
19 }
20 
21 UnixSocket::shared SocketTrigger::getSocket(void) const throw () {
22  return second;
23 }
24 
25 int SocketTrigger::getFD(void) const {
26  return second->getFD();
27 }
28 
29 void SocketTrigger::set(void) throw (SocketException) {
30  static std::string buf("1");
31 
32  first->send(buf);
33 }
34 
35 void SocketTrigger::clear(void) const throw (SocketException) {
36  char buf[Socket::RecvSizeDefault];
37 
38  while (second->recv(buf, sizeof(buf)) >= (ssize_t) sizeof(buf));
39 }
40 
41 bool SocketTrigger::isSet(void) const throw (SocketException) {
42  return second->hasData();
43 }
44 
45 const SocketTrigger::shared SocketTrigger::shared_ptr() throw (SocketException) {
46  return std::make_shared<SocketTrigger>();
47 }
48 
49 /*
50 ** vim: noet ts=3 sw=3
51 */