4#include "Stroika/Foundation/StroikaPreComp.h"
8#include "Stroika/Foundation/Containers/Collection.h"
9#include "Stroika/Foundation/Execution/Exceptions.h"
12#include "SocketAddress.h"
15using namespace Stroika::Foundation::Memory;
16using namespace Stroika::Foundation::IO;
24#if qStroika_Foundation_Common_Platform_Windows
28 if (sockaddr.iSockaddrLength > sizeof (fSocketAddressStorage_)) [[unlikely]] {
31 (void)::memcpy (&fSocketAddressStorage_, sockaddr.lpSockaddr, sockaddr.iSockaddrLength);
38 using namespace Characters::Literals;
43 reinterpret_cast<const byte*
> (&fSocketAddress_) +
GetRequiredSize ()});
55 for (
const auto& i : internetAddresses) {
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
Exception<> is a replacement (subclass) for any std c++ exception class (e.g. the default 'std::excep...
constexpr SocketAddress() noexcept
nonvirtual PortType GetPort() const
nonvirtual size_t GetRequiredSize() const
nonvirtual InternetAddress GetInternetAddress() const
nonvirtual bool IsInternetAddress() const
nonvirtual String ToString() const
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.
String ToString(T &&t, ARGS... args)
Return a debug-friendly, display version of the argument: not guaranteed parsable or usable except fo...
void Throw(T &&e2Throw)
identical to builtin C++ 'throw' except that it does helpful, type dependent DbgTrace() messages firs...
Traversal::Iterable< SocketAddress > SocketAddresses(const Traversal::Iterable< InternetAddress > &internetAddresses, PortType portNumber)