ssl/ipv4_udp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUS_SSL_IPV4UDP_H
00020 #define CONEXUS_SSL_IPV4UDP_H
00021
00022 #include <conexus/ipv4_udp.h>
00023 #include <conexus-ssl/ssl.h>
00024
00025 namespace Conexus
00026 {
00027
00028 namespace SSL
00029 {
00030
00031 namespace IPv4
00032 {
00033
00039 class UDP : public Conexus::IPv4::UDP, public Conexus::SSL::SSL
00040 {
00041
00042 UDP( Context::pointer context, uint32_t local_if, uint16_t localport, uint16_t remoteport );
00043
00044 UDP( Context::pointer context, const std::string& local_if, uint16_t localport, uint16_t remoteport );
00045
00046 public:
00047 typedef ConexusPointer<UDP> pointer;
00048
00049 static pointer create( Context::pointer context, uint16_t localport = 0, uint16_t remoteport = 0 );
00050
00051 static pointer create( Context::pointer context, uint32_t local_if, uint16_t localport, uint16_t remoteport );
00052
00053 static pointer create( Context::pointer context, const std::string& local_if, uint16_t localport = 0, uint16_t remoteport = 0 );
00054
00055 ~UDP() throw ();
00056
00057 virtual void open() throw ( open_exception );
00058
00059 virtual void connect() throw ( connect_exception );
00060
00061 virtual void connect( const Conexus::IPv4::Address& a ) throw ( connect_exception );
00062
00063 protected:
00064
00065 virtual size_t write_data( const Data data, Timeout timeout ) throw ( write_exception );
00066
00067 virtual Data read_data( size_t s, Timeout timeout ) throw ( read_exception );
00068
00074 bool m_want_write;
00075
00081 bool m_want_read;
00082
00083 };
00084
00085 }
00086
00087 }
00088
00089 }
00090
00091 #endif