Network/UDPForward: Add udpforward util
[udpforward.git] / UDPForwarder.hh
1 // $Id$
2 //
3 // Copyright (C) 2008 
4
5 /** \file
6     \brief UDPForwarder public header */
7
8 #ifndef HH_UDPForwarder_
9 #define HH_UDPForwarder_ 1
10
11 // Custom includes
12 #include <senf/Socket/Protocols/INet/UDPSocketHandle.hh>
13 #include <senf/Socket/Protocols/INet/ConnectedUDPSocketHandle.hh>
14 #include <senf/Scheduler/Scheduler.hh>
15 #include <senf/Utils/membind.hh>
16 #include <senf/Utils/Exception.hh>
17 #include <senf/Utils/Logger.hh>
18
19 //#include "UDPForwarder.mpp"
20 ///////////////////////////////hh.p////////////////////////////////////////
21
22 namespace udpforward {
23
24     class UDPForwarder
25     {
26     public:
27         SENF_LOG_CLASS_AREA();
28
29         UDPForwarder(senf::INet4SocketAddress const & addr,
30                      senf::INet4SocketAddress const & target);
31         
32         struct ForwarderException : public senf::Exception
33         { ForwarderException(std::string const & msg) : senf::Exception(msg) {} };
34         
35     private:
36         void readEvent(int event);
37         
38         senf::UDPv4ClientSocketHandle socket_;
39         senf::INet4SocketAddress target_;
40         senf::INet4SocketAddress peer_;
41         senf::scheduler::FdEvent event_;
42     };
43
44 }
45
46 ///////////////////////////////hh.e////////////////////////////////////////
47 //#include "UDPForwarder.cci"
48 //#include "UDPForwarder.ct"
49 //#include "UDPForwarder.cti"
50 #endif
51
52 \f
53 // Local Variables:
54 // mode: c++
55 // fill-column: 100
56 // indent-tabs-mode: nil
57 // compile-command: "scons"
58 // comment-column: 40
59 // End: