Add UDP over IP socket concept (::picolibrary::IP::UDP::Socket_Concept) and associated mock (::picolibrary::Testing::Automated::IP::UDP::Mock_Socket).
[x] The Socket_Concept class should be defined in the include/picolibrary/ip/udp.h/source/picolibrary/ip/udp.cc header/source file pair
[x] The Mock_Socket class should be defined in the include/picolibrary/testing/automated/ip/udp.h/source/picolibrary/testing/automated/ip/udp.cc header/source file pair
[x] Sockets should be expected to support the following operations:
Add UDP over IP socket concept (
::picolibrary::IP::UDP::Socket_Concept
) and associated mock (::picolibrary::Testing::Automated::IP::UDP::Mock_Socket
).Socket_Concept
class should be defined in theinclude/picolibrary/ip/udp.h
/source/picolibrary/ip/udp.cc
header/source file pairMock_Socket
class should be defined in theinclude/picolibrary/testing/automated/ip/udp.h
/source/picolibrary/testing/automated/ip/udp.cc
header/source file pairSocket_Concept() noexcept;
Socket_Concept( Socket_Concept && source ) noexcept;
~Socket_Concept() noexcept;
auto operator=( Socket_Concept && expression ) noexcept -> Socket_Concept &;
void bind( Endpoint const & endpoint = Endpoint{} ) noexcept;
: Bind the socket to a local endpointauto local_endpoint() const noexcept -> Endpoint;
: Get the socket's local endpointauto transmit( Endpoint const & endpoint, std::uint8_t const * begin, std::uint8_t const * end ) noexcept -> Result<void>;
: Transmit a datagram to a remote endpointauto receive( std::uint8_t * begin, std::uint8_t * end ) noexcept -> Result<Reception_Result>;
: Receive a datagram from a remote endpointvoid close() noexcept;
: Close the socketMock_Socket
class should include a movable mock handle