diff options
Diffstat (limited to 'modules/io-tls/tls.hpp')
-rw-r--r-- | modules/io-tls/tls.hpp | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/modules/io-tls/tls.hpp b/modules/io-tls/tls.hpp deleted file mode 100644 index c5c3da1..0000000 --- a/modules/io-tls/tls.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#pragma once - -#include <forstio/common.hpp> -#include <forstio/io/io.hpp> - -#include <optional> -#include <variant> - -namespace saw { -namespace net { -template<typename T = net::Os> -struct Tls {}; -} - -class tls; - -/** -* tls context class. -* Provides tls network class which ensures the usage of tls encrypted connections -*/ -class tls { -private: - class impl; - own<impl> impl_; -public: - tls(); - ~tls(); - - struct version { - struct tls_1_0{}; - struct tls_1_1{}; - struct tls_1_2{}; - }; - - struct options { - public: - version version; - }; - - impl &get_impl(); -private: - options options_; -}; - -template<typename T> -class network<net::Tls<T>> { -public: - virtual ~network() = default; - - /** - * Resolve the provided string and uint16 to the preferred storage method - */ - virtual conveyor<own<network_address<net::Tls<T>>>> - resolve_address(const std::string &addr, uint16_t port_hint = 0) = 0; - - /** - * Parse the provided string and uint16 to the preferred storage method - * Since no dns request is made here, no async conveyors have to be used. - */ - virtual error_or<own<network_address<net::Tls<T>>>> - parse_address(const std::string &addr, uint16_t port_hint = 0) = 0; - - /** - * Set up a listener on this address - */ - virtual error_or<own<server<T>>> listen(network_address<T> &bind_addr) = 0; - - /** - * Connect to a remote address - */ - virtual conveyor<own<io_stream<T>>> connect(network_address<T> &address) = 0; -}; - -template<typename T = net::Os> -error_or<own<network<net::Tls<T>>>> setup_tls_network(network<T> &network); - -} // namespace saw |