E-MailRelay

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

geventhandler.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>
3 //
4 // This program 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 // This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 //
18 // geventhandler.cpp
19 //
20
21 #include "gdef.h"
22 #include "geventhandler.h"
23 #include "gexception.h"
24 #include "gdebug.h"
25
26 GNet::EventHandler::~EventHandler()
27 {
28 }
29
30 void GNet::EventHandler::readEvent()
31 {
32 G_DEBUG( "GNet::EventHandler::readEvent: no override" ) ;
33 }
34
35 void GNet::EventHandler::writeEvent()
36 {
37 G_DEBUG( "GNet::EventHandler::writeEvent: no override" ) ;
38 }
39
40 void GNet::EventHandler::otherEvent( EventHandler::Reason reason )
41 {
42 // this event is mostly relevant to windows -- the default action is
43 // to throw an exception -- for 'reason_closed' (ie. a clean shutdown())
44 // it would be reasonable to read the socket until it returns an error
45 // or zero, and/or set a close timer
46
47 throw G::Exception( "socket disconnect event" , str(reason) ) ;
48 }
49
50 std::string GNet::EventHandler::str( EventHandler::Reason reason )
51 {
52 if( reason == EventHandler::reason_closed ) return "closed" ;
53 if( reason == EventHandler::reason_down ) return "network down" ;
54 if( reason == EventHandler::reason_reset ) return "connection reset by peer" ;
55 if( reason == EventHandler::reason_abort ) return "connection aborted" ;
56 return std::string() ;
57 }
58
59 /// \file geventhandler.cpp
GNet::EventHandler::readEvent
virtual void readEvent()
Called for a read event.
Definition: geventhandler.cpp:30
GNet::EventHandler::writeEvent
virtual void writeEvent()
Called for a write event.
Definition: geventhandler.cpp:35
geventhandler.h
GNet::EventHandler::str
static std::string str(Reason)
Returns a printable description of the other-event reason.
Definition: geventhandler.cpp:50
gexception.h
G::Exception
A general-purpose exception class derived from std::exception and containing a std::string.
Definition: gexception.h:43
GNet::EventHandler::otherEvent
virtual void otherEvent(Reason)
Called for a socket-exception event or a socket-close event on windows.
Definition: geventhandler.cpp:40
GNet::EventHandler::~EventHandler
virtual ~EventHandler()
Destructor.
Definition: geventhandler.cpp:26
gdebug.h