ssl/ipv4_tcp.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_IPV4TCP_H
00020 #define CONEXUS_SSL_IPV4TCP_H
00021
00022 #include <conexus/ipv4_tcp.h>
00023 #include <conexus-ssl/ssl.h>
00024
00025 namespace Conexus
00026 {
00027
00028 namespace SSL
00029 {
00030
00031 namespace IPv4
00032 {
00033
00037 class TCP : public Conexus::IPv4::TCP, public Conexus::SSL::SSL
00038 {
00039 friend class TCPServer;
00040
00041 TCP ( Context::pointer context, uint32_t address=INADDR_ANY, uint16_t port=0 );
00042
00043 TCP ( Context::pointer context, const std::string& address, uint16_t port );
00044
00045 public:
00046 typedef ConexusPointer<TCP> pointer;
00047
00048 static pointer create ( Context::pointer context, uint16_t port = 0 );
00049
00050 static pointer create ( Context::pointer context,uint32_t address, uint16_t port );
00051
00052 static pointer create ( Context::pointer context, const std::string& address, uint16_t port = 0 );
00053
00054 ~TCP() throw ();
00055
00056 virtual void open() throw ( open_exception );
00057
00058 virtual void connect() throw ( connect_exception );
00059
00060 virtual void connect( const Conexus::IPv4::Address& a ) throw ( connect_exception );
00061
00062 protected:
00067 TCP ( Context::pointer context, int accepted_fd, bool );
00068
00069 static TCP::pointer create ( Context::pointer context, int accepted_fd, bool );
00070
00071 virtual size_t write_data( const Data data, Timeout timeout ) throw ( write_exception );
00072
00073 virtual Data read_data( size_t s, Timeout timeout ) throw ( read_exception );
00074
00075 private:
00081 bool m_want_write;
00082
00088 bool m_want_read;
00089
00090 };
00091
00092 }
00093
00094 }
00095
00096 }
00097
00098 #endif