#include <ipv4_tcp.h>
Public Types | |
typedef ConexusPointer< TCP > | pointer |
Public Member Functions | |
~TCP () throw () | |
virtual void | open () throw ( open_exception ) |
virtual void | connect () throw ( connect_exception ) |
virtual void | connect (const Conexus::IPv4::Address &a) throw ( connect_exception ) |
Static Public Member Functions | |
static pointer | create (Context::pointer context, uint16_t port=0) |
static pointer | create (Context::pointer context, uint32_t address, uint16_t port) |
static pointer | create (Context::pointer context, const std::string &address, uint16_t port=0) |
Protected Member Functions | |
TCP (Context::pointer context, int accepted_fd, bool) | |
Protected constructor to be used by TCPServer to create TCP connections. | |
virtual size_t | write_data (const Data data, Timeout timeout) throw ( write_exception ) |
virtual Data | read_data (size_t s, Timeout timeout) throw ( read_exception ) |
Static Protected Member Functions | |
static TCP::pointer | create (Context::pointer context, int accepted_fd, bool) |
Private Member Functions | |
TCP (Context::pointer context, uint32_t address=INADDR_ANY, uint16_t port=0) | |
TCP (Context::pointer context, const std::string &address, uint16_t port) | |
Private Attributes | |
bool | m_want_write |
Internally used when an SSL_read indicates that it needs to block on write. | |
bool | m_want_read |
Similar to m_want_write, this is used to indicate a write blocked on a WANT_READ. | |
Friends | |
class | TCPServer |
typedef ConexusPointer<TCP> Conexus::SSL::IPv4::TCP::pointer |
Reimplemented from Conexus::IPv4::TCP.
Conexus::SSL::IPv4::TCP::TCP | ( | Context::pointer | context, | |
uint32_t | address = INADDR_ANY , |
|||
uint16_t | port = 0 | |||
) | [private] |
Conexus::SSL::IPv4::TCP::TCP | ( | Context::pointer | context, | |
const std::string & | address, | |||
uint16_t | port | |||
) | [private] |
Conexus::SSL::IPv4::TCP::~TCP | ( | ) | throw () [virtual] |
Reimplemented from Conexus::IPv4::TCP.
Conexus::SSL::IPv4::TCP::TCP | ( | Context::pointer | context, | |
int | accepted_fd, | |||
bool | b | |||
) | [protected] |
Protected constructor to be used by TCPServer to create TCP connections.
The second bool parameter is used to differentiate the public method from the private method.
References Conexus::FileDescriptor::m_fd, and Conexus::SSL::SSL::set_bio().
void Conexus::SSL::IPv4::TCP::connect | ( | const Conexus::IPv4::Address & | a | ) | throw ( connect_exception ) [virtual] |
void Conexus::SSL::IPv4::TCP::connect | ( | ) | throw ( connect_exception ) [virtual] |
TCP::pointer Conexus::SSL::IPv4::TCP::create | ( | Context::pointer | context, | |
int | accepted_fd, | |||
bool | b | |||
) | [static, protected] |
TCP::pointer Conexus::SSL::IPv4::TCP::create | ( | Context::pointer | context, | |
const std::string & | address, | |||
uint16_t | port = 0 | |||
) | [static] |
TCP::pointer Conexus::SSL::IPv4::TCP::create | ( | Context::pointer | context, | |
uint32_t | address, | |||
uint16_t | port | |||
) | [static] |
TCP::pointer Conexus::SSL::IPv4::TCP::create | ( | Context::pointer | context, | |
uint16_t | port = 0 | |||
) | [static] |
void Conexus::SSL::IPv4::TCP::open | ( | ) | throw ( open_exception ) [virtual] |
Reimplemented from Conexus::Socket.
References Conexus::FileDescriptor::m_fd, and Conexus::SSL::SSL::set_bio().
Data Conexus::SSL::IPv4::TCP::read_data | ( | size_t | s, | |
Timeout | timeout | |||
) | throw ( read_exception ) [protected, virtual] |
Reimplemented from Conexus::Socket.
References Conexus::Data::resize(), Conexus::Data::set_current_time(), Conexus::Data::size(), Conexus::SOCKET_BOUND, Conexus::throw_read_exception(), and Conexus::throw_ssl_exception().
size_t Conexus::SSL::IPv4::TCP::write_data | ( | const Data | data, | |
Timeout | timeout | |||
) | throw ( write_exception ) [protected, virtual] |
Reimplemented from Conexus::IPv4::TCP.
References Conexus::SOCKET_CONNECTED, Conexus::throw_ssl_exception(), and Conexus::throw_write_exception().
friend class TCPServer [friend] |
Reimplemented from Conexus::IPv4::TCP.
bool Conexus::SSL::IPv4::TCP::m_want_read [private] |
Similar to m_want_write, this is used to indicate a write blocked on a WANT_READ.
Again, with a write we are not concerned with a WANT_WRITE since that is the normal blocking condition.
bool Conexus::SSL::IPv4::TCP::m_want_write [private] |
Internally used when an SSL_read indicates that it needs to block on write.
For SSL_read we are not concerned with WANT_READ since the block on read is the normal condition when reading.