4#ifndef _Stroika_Foundation_IO_Network_ConnectionOrientedMasterSocket_h_
5#define _Stroika_Foundation_IO_Network_ConnectionOrientedMasterSocket_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "ConnectionOrientedStreamSocket.h"
19 namespace ConnectionOrientedMasterSocket {
21 using namespace Socket;
49 Ptr (
const Ptr& src) =
default;
51 Ptr (shared_ptr<_IRep>&& rep);
52 Ptr (
const shared_ptr<_IRep>& rep);
57 nonvirtual
Ptr& operator= (
const Ptr& rhs) =
default;
58 nonvirtual
Ptr& operator= (
Ptr&& rhs) =
default;
66 nonvirtual
void Listen (
unsigned int backlog)
const;
82 nonvirtual shared_ptr<_IRep> _GetSharedRep ()
const;
88 nonvirtual _IRep&
_ref ()
const;
94 nonvirtual
const _IRep&
_cref ()
const;
99 class _IRep :
public Socket::_IRep {
101 virtual ~_IRep () =
default;
102 virtual void Listen (
unsigned int backlog) = 0;
139 template <
typename T>
140 struct WaitForIOReady_Traits;
142 struct WaitForIOReady_Traits<IO::Network::ConnectionOrientedMasterSocket::Ptr> {
144 static inline auto GetSDKPollable (
const HighLevelType& t)
157#include "ConnectionOrientedMasterSocket.inl"
nonvirtual ConnectionOrientedStreamSocket::Ptr Accept() const
nonvirtual _IRep & _ref() const
nonvirtual void Listen(unsigned int backlog) const
nonvirtual const _IRep & _cref() const
a smart pointer wrapper (like shared_ptr <_IRep>).
nonvirtual PlatformNativeHandle GetNativeSocket() const
FamilyType
Socket address family - also sometimes referred to as domain (argument to ::socket calls it domain)
Ptr Attach(PlatformNativeHandle sd)
Ptr New(SocketAddress::FamilyType family, Type socketKind, const optional< IPPROTO > &protocol={})