Wizard
Software Engineering Project - Wizard
|
socket
classshutdown()
addedcreate()
addedbind()
moved into base socket (from acceptor
)stream_socket
cloning.stream_socket::read_n()
and write_n()
now properly handle EINTR return.to_timeval()
can convert from any std::chrono::duration
type.socket::close()
and shutdown()
check for errors, set last error, and return a bool.clone()
.socket::last_error_string
.datagram_socket
added to the Windows builddatagram_socket
cleaned up for proper parameter and return types.datagram_socket_tmpl
template class for defining UDP sockets for the different address families.udp_socket
), IPv6 (udp6_socket
), and Unix-domain (unix_dgram_socket
)tcp_socket.h
, tcp6_socket.h
, etc).sock_address_ref
class. Now a C++ reference to sock_address
will replace it (i.e. sock_address&
).sock_address
is now an abstract base class.sock_address
const sock_address&
sock_address_any
class that can contain any address, and is used by base classes that need a generic address.acceptor
and connector
classes are still concrete, generic classes, but now a template derives from each of them to specialize.tcp_connector
, tcp_acceptor
, tcp6_connector
, etc) are now typedef'ed to template specializations.acceptor::bind()
and acceptor::read_message()
methods are now public.CMAKE_BUILD_TYPE
flag.The work in this branch is proceeding to add support for IPv6 and refactor the class hierarchies to better support the different address families without so much redundant code.
inet6_address
, tcp6_acceptor
, tcp_connector
, etc.sock_address
class is now contains storage for any type of address and follows copy semantics. Previously it was a non-owning reference class. That reference class now exists as sock_addresss_ref
.socket
class(es) the bool address(address&)
and bool peer_address(addr&)
forms of getting the socket addresses have been removed in favor of the ones that simply return the address. Added get_option()
and set_option()
methods to the base socket
class.