00001
00002
00003
00004
00005
00006
00007
00008
00009 static const char rcsid[] __attribute__((used)) = "$Id: SocketTrigger.cpp 1197 2014-10-14 22:26:11Z sella $";
00010
00011 #include "SocketTrigger.h"
00012
00013 using namespace sella::net;
00014
00015 SocketTrigger::SocketTrigger() throw (SocketException) {
00016 }
00017
00018 SocketTrigger::~SocketTrigger() {
00019 }
00020
00021 UnixSocket::shared SocketTrigger::getSocket(void) const throw () {
00022 return second;
00023 }
00024
00025 int SocketTrigger::getFD(void) const {
00026 return second->getFD();
00027 }
00028
00029 void SocketTrigger::set(void) throw (SocketException) {
00030 static std::string buf("1");
00031
00032 first->send(buf);
00033 }
00034
00035 void SocketTrigger::clear(void) const throw (SocketException) {
00036 char buf[Socket::RecvSizeDefault];
00037
00038 while (second->recv(buf, sizeof(buf)) >= (ssize_t) sizeof(buf));
00039 }
00040
00041 bool SocketTrigger::isSet(void) const throw (SocketException) {
00042 return second->hasData();
00043 }
00044
00045 const SocketTrigger::shared SocketTrigger::shared_ptr() throw (SocketException) {
00046 return std::make_shared<SocketTrigger>();
00047 }
00048
00049
00050
00051