Connection.hpp

This File On Github
Ask A Question

API: latest
module: oatpp-mbedtls
#include "oatpp-mbedtls/Connection.hpp"

Connection

TLS Connection implementation based on Mbed TLS. Extends oatpp::base::Countable and oatpp::data::stream::IOStream.

namespace oatpp { namespace mbedtls { 
  class Connection : public oatpp::base::Countable, public oatpp::data::stream::IOStream {}
}}

Methods

Return Type Name Summary
[none] Connection Constructor.
std::shared_ptr<Connection> createShared Create shared connection.
void setTLSStreamBIOCallbacks Set BIO callbacks for underlying transport stream.
[none] ~Connection Virtual destructor.
data::v_io_size write Implementation of oatpp::data::stream::OutputStream::write() method.
data::v_io_size read Implementation of oatpp::data::stream::InputStream::read() method.
oatpp::async::Action suggestOutputStreamAction Implementation of OutputStream must suggest async actions for I/O results.
oatpp::async::Action suggestInputStreamAction Implementation of InputStream must suggest async actions for I/O results.
void setOutputStreamIOMode Set OutputStream I/O mode.
oatpp::data::stream::IOMode getOutputStreamIOMode Set OutputStream I/O mode.
void setInputStreamIOMode Set InputStream I/O mode.
oatpp::data::stream::IOMode getInputStreamIOMode Get InputStream I/O mode.
void close Close all handles.
mbedtls_ssl_context* getTlsHandle Get TLS handle.
std::shared_ptr<oatpp::data::stream::IOStream> getStream Get socket handle.

Connection::Connection

Constructor.

Connection(mbedtls_ssl_context* tlsHandle, const std::shared_ptr<oatpp::data::stream::IOStream>& stream)

Connection::createShared

Create shared connection.

  • @param tlsHandle - mbedtls_ssl_context*.
  • @param stream - underlying transport stream. oatpp::data::stream::IOStream.
  • @return - std::shared_ptr to Connection.

static std::shared_ptr<Connection> createShared(mbedtls_ssl_context* tlsHandle, const std::shared_ptr<oatpp::data::stream::IOStream>& stream)

Connection::setTLSStreamBIOCallbacks

Set BIO callbacks for underlying transport stream.
Should be called before handshake and before passing tlsHandle and stream to construct Connection

static void setTLSStreamBIOCallbacks(mbedtls_ssl_context* tlsHandle, oatpp::data::stream::IOStream* stream)

Connection::~Connection

Virtual destructor.

~Connection()

Connection::write

Implementation of oatpp::data::stream::OutputStream::write() method.

  • @param buff - data to write to stream.
  • @param count - data size.
  • @return - actual amount of bytes written.

data::v_io_size write(const void *buff, data::v_io_size count) override

Connection::read

Implementation of oatpp::data::stream::InputStream::read() method.

  • @param buff - buffer to read data to.
  • @param count - buffer size.
  • @return - actual amount of bytes read.

data::v_io_size read(void *buff, data::v_io_size count) override

Connection::suggestOutputStreamAction

Implementation of OutputStream must suggest async actions for I/O results. Suggested Action is used for scheduling coroutines in async::Executor.

oatpp::async::Action suggestOutputStreamAction(data::v_io_size ioResult) override

Connection::suggestInputStreamAction

Implementation of InputStream must suggest async actions for I/O results. Suggested Action is used for scheduling coroutines in async::Executor.

oatpp::async::Action suggestInputStreamAction(data::v_io_size ioResult) override

Connection::setOutputStreamIOMode

Set OutputStream I/O mode.

  • @param ioMode

void setOutputStreamIOMode(oatpp::data::stream::IOMode ioMode) override

Connection::getOutputStreamIOMode

Set OutputStream I/O mode.

  • @return

oatpp::data::stream::IOMode getOutputStreamIOMode() override

Connection::setInputStreamIOMode

Set InputStream I/O mode.

  • @param ioMode

void setInputStreamIOMode(oatpp::data::stream::IOMode ioMode) override

Connection::getInputStreamIOMode

Get InputStream I/O mode.

  • @return

oatpp::data::stream::IOMode getInputStreamIOMode() override

Connection::close

Close all handles.

void close()

Connection::getTlsHandle

Get TLS handle.

  • @return - mbedtls_ssl_context*.

mbedtls_ssl_context* getTlsHandle()

Connection::getStream

Get socket handle.

std::shared_ptr<oatpp::data::stream::IOStream> getStream()