diff options
Diffstat (limited to 'modules/io-tls/c++/tls.hpp')
-rw-r--r-- | modules/io-tls/c++/tls.hpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/modules/io-tls/c++/tls.hpp b/modules/io-tls/c++/tls.hpp index c5c3da1..5082ee9 100644 --- a/modules/io-tls/c++/tls.hpp +++ b/modules/io-tls/c++/tls.hpp @@ -43,6 +43,20 @@ private: }; template<typename T> +class network_address<net::Tls<T>> final { +private: + own<network_address<T>> internal_; +public: + network_address(own<network_address<T>> internal__): + internal_{std::move(internal__)} + {} + + network_address<T>& get_handle() { + return *internal_; + } +}; + +template<typename T> class network<net::Tls<T>> { public: virtual ~network() = default; @@ -63,15 +77,17 @@ public: /** * Set up a listener on this address */ - virtual error_or<own<server<T>>> listen(network_address<T> &bind_addr) = 0; + virtual error_or<own<server<net::Tls<T>>>> listen(network_address<net::Tls<T>> &bind_addr) = 0; /** * Connect to a remote address */ - virtual conveyor<own<io_stream<T>>> connect(network_address<T> &address) = 0; + virtual conveyor<own<io_stream<net::Tls<T>>>> connect(network_address<net::Tls<T>> &address) = 0; }; template<typename T = net::Os> error_or<own<network<net::Tls<T>>>> setup_tls_network(network<T> &network); } // namespace saw + +#include "tls.tmpl.hpp" |