summaryrefslogtreecommitdiff
path: root/modules/io/c++/io_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/io/c++/io_unix.cpp')
-rw-r--r--modules/io/c++/io_unix.cpp58
1 files changed, 29 insertions, 29 deletions
diff --git a/modules/io/c++/io_unix.cpp b/modules/io/c++/io_unix.cpp
index 73e8e3b..1d89e7d 100644
--- a/modules/io/c++/io_unix.cpp
+++ b/modules/io/c++/io_unix.cpp
@@ -264,7 +264,7 @@ public:
ssize_t unix_read(int fd, void *buffer, size_t length);
ssize_t unix_write(int fd, const void *buffer, size_t length);
-class unix_io_stream final : public io_stream, public i_fd_owner {
+class unix_io_stream final : public io_stream<net::Os>, public i_fd_owner {
private:
own<conveyor_feeder<void>> read_ready_ = nullptr;
own<conveyor_feeder<void>> on_read_disconnect_ = nullptr;
@@ -299,19 +299,19 @@ public:
void notify(uint32_t mask) override;
};
-class unix_server final : public server, public i_fd_owner {
+class unix_server final : public server<net::Os>, public i_fd_owner {
private:
- own<conveyor_feeder<own<io_stream>>> accept_feeder_ = nullptr;
+ own<conveyor_feeder<own<io_stream<net::Os>>>> accept_feeder_ = nullptr;
public:
unix_server(unix_event_port &event_port, int file_descriptor, int fd_flags);
- conveyor<own<io_stream>> accept() override;
+ conveyor<own<io_stream<net::Os>>> accept() override;
void notify(uint32_t mask) override;
};
-class unix_datagram final : public datagram, public i_fd_owner {
+class unix_datagram final : public datagram<net::Os>, public i_fd_owner {
private:
own<conveyor_feeder<void>> read_ready_ = nullptr;
own<conveyor_feeder<void>> write_ready_ = nullptr;
@@ -324,7 +324,7 @@ public:
conveyor<void> read_ready() override;
error_or<size_t> write(const void *buffer, size_t length,
- network_address &dest) override;
+ network_address<net::Os> &dest) override;
conveyor<void> write_ready() override;
void notify(uint32_t mask) override;
@@ -437,19 +437,19 @@ private:
public:
unix_network(unix_event_port &event_port);
- conveyor<own<network_address>>
+ conveyor<own<network_address<net::Os>>>
resolve_address(const std::string &address,
uint16_t port_hint = 0) override;
- error_or<own<network_address>>
+ error_or<own<network_address<net::Os>>>
parse_address(const std::string& address,
uint16_t port_hint = 0) override;
- own<server> listen(network_address &addr) override;
+ own<server<net::Os>> listen(network_address<net::Os> &addr) override;
- conveyor<own<io_stream>> connect(network_address &addr) override;
+ conveyor<own<io_stream<net::Os>>> connect(network_address<net::Os> &addr) override;
- own<class datagram> datagram(network_address &addr) override;
+ own<datagram<net::Os>> bind_datagram(network_address<net::Os> &addr) override;
};
class unix_io_provider final : public io_provider {
@@ -462,7 +462,7 @@ private:
public:
unix_io_provider(unix_event_port &port_ref, own<event_port> port);
- class network<net::Os> &get_network() override;
+ network<net::Os> &get_network() override;
own<input_stream> wrap_input_fd(int fd) override;
@@ -564,8 +564,8 @@ unix_server::unix_server(unix_event_port &event_port, int file_descriptor,
int fd_flags)
: i_fd_owner{event_port, file_descriptor, fd_flags, EPOLLIN} {}
-conveyor<own<io_stream>> unix_server::accept() {
- auto caf = new_conveyor_and_feeder<own<io_stream>>();
+conveyor<own<io_stream<net::Os>>> unix_server::accept() {
+ auto caf = new_conveyor_and_feeder<own<io_stream<net::Os>>>();
accept_feeder_ = std::move(caf.feeder);
return std::move(caf.conveyor);
}
@@ -624,7 +624,7 @@ conveyor<void> unix_datagram::read_ready() {
}
error_or<size_t> unix_datagram::write(const void *buffer, size_t length,
- network_address &dest) {
+ network_address<net::Os> &dest) {
unix_network_address &unix_dest = static_cast<unix_network_address &>(dest);
socket_address &sock_addr = unix_dest.unix_address();
socklen_t sock_addr_length = sock_addr.get_raw_length();
@@ -664,7 +664,7 @@ bool begins_with(const std::string_view &viewed,
}
std::variant<unix_network_address, unix_network_address *>
-translate_network_address_to_unix_network_address(network_address &addr) {
+translate_network_address_to_unix_network_address(network_address<net::Os> &addr) {
auto addr_variant = addr.representation();
std::variant<unix_network_address, unix_network_address *> os_addr =
std::visit(
@@ -705,7 +705,7 @@ unix_network_address &translate_to_unix_address_ref(
} // namespace
-own<server> unix_network::listen(network_address &addr) {
+own<server<net::Os>> unix_network::listen(network_address<net::Os> &addr) {
auto unix_addr_storage =
translate_network_address_to_unix_network_address(addr);
unix_network_address &address =
@@ -743,7 +743,7 @@ own<server> unix_network::listen(network_address &addr) {
#include <iostream>
namespace saw { namespace unix {
-conveyor<own<io_stream>> unix_network::connect(network_address &addr) {
+conveyor<own<io_stream<net::Os>>> unix_network::connect(network_address<net::Os> &addr) {
auto unix_addr_storage =
translate_network_address_to_unix_network_address(addr);
unix_network_address &address =
@@ -751,12 +751,12 @@ conveyor<own<io_stream>> unix_network::connect(network_address &addr) {
assert(address.unix_address_size() > 0);
if (address.unix_address_size() == 0) {
- return conveyor<own<io_stream>>{make_error<err::critical>()};
+ return conveyor<own<io_stream<net::Os>>>{make_error<err::critical>()};
}
int fd = address.unix_address(0).socket(SOCK_STREAM);
if (fd < 0) {
- return conveyor<own<io_stream>>{make_error<err::disconnected>()};
+ return conveyor<own<io_stream<net::Os>>>{make_error<err::disconnected>()};
}
own<unix_io_stream> io_str =
@@ -780,12 +780,12 @@ conveyor<own<io_stream>> unix_network::connect(network_address &addr) {
if (error == EINPROGRESS) {
conveyor<void> write_rdy = io_str->write_ready();
- return write_rdy.then([ios = std::move(io_str)] () mutable -> error_or<own<io_stream>> {
+ return write_rdy.then([ios = std::move(io_str)] () mutable -> error_or<own<io_stream<net::Os>>> {
if(!ios){
return make_error<err::invalid_state>("Limit node invalidated");
}
- own<io_stream> mov_ios = std::move(ios);
+ own<io_stream<net::Os>> mov_ios = std::move(ios);
/**
* This guarantees the old async pipe to not be used anymore
*/
@@ -795,7 +795,7 @@ conveyor<own<io_stream>> unix_network::connect(network_address &addr) {
});
} else if (error != EINTR) {
/// @todo Push error message from
- return conveyor<own<io_stream>>{make_error<err::disconnected>()};
+ return conveyor<own<io_stream<net::Os>>>{make_error<err::disconnected>()};
}
} else {
success = true;
@@ -804,13 +804,13 @@ conveyor<own<io_stream>> unix_network::connect(network_address &addr) {
}
if (!success) {
- return conveyor<own<io_stream>>{make_error<err::disconnected>()};
+ return conveyor<own<io_stream<net::Os>>>{make_error<err::disconnected>()};
}
- return conveyor<own<io_stream>>{std::move(io_str)};
+ return conveyor<own<io_stream<net::Os>>>{std::move(io_str)};
}
-own<datagram> unix_network::datagram(network_address &addr) {
+own<datagram<net::Os>> unix_network::bind_datagram(network_address<net::Os> &addr) {
auto unix_addr_storage =
translate_network_address_to_unix_network_address(addr);
unix_network_address &address =
@@ -853,7 +853,7 @@ size_t unix_network_address::unix_address_size() const {
unix_network::unix_network(unix_event_port &event) : event_port_{event} {}
-conveyor<own<network_address>>
+conveyor<own<network_address<net::Os>>>
unix_network::resolve_address(const std::string &path, uint16_t port_hint) {
std::string_view addr_view{path};
{
@@ -866,11 +866,11 @@ unix_network::resolve_address(const std::string &path, uint16_t port_hint) {
std::vector<socket_address> addresses =
socket_address::resolve(addr_view, port_hint);
- return conveyor<own<network_address>>{
+ return conveyor<own<network_address<net::Os>>>{
heap<unix_network_address>(path, port_hint, std::move(addresses))};
}
-error_or<own<network_address>>
+error_or<own<network_address<net::Os>>>
unix_network::parse_address(const std::string& path, uint16_t port_hint){
std::string_view addr_view{path};
{