13 inline ConnectionlessSocket::Ptr::Ptr (nullptr_t)
14 : Socket::Ptr{nullptr}
17 inline ConnectionlessSocket::Ptr::Ptr (
const shared_ptr<_IRep>& rep)
21 inline ConnectionlessSocket::Ptr::Ptr (shared_ptr<_IRep>&& rep)
22 : Socket::Ptr{move (rep)}
25 inline uint8_t ConnectionlessSocket::Ptr::GetMulticastTTL ()
const
28 return _cref ().GetMulticastTTL ();
30 inline void ConnectionlessSocket::Ptr::SetMulticastTTL (uint8_t ttl)
const
33 _ref ().SetMulticastTTL (ttl);
35 inline bool ConnectionlessSocket::Ptr::GetMulticastLoopMode ()
const
38 return _cref ().GetMulticastLoopMode ();
40 inline void ConnectionlessSocket::Ptr::SetMulticastLoopMode (
bool loopMode)
const
43 _ref ().SetMulticastLoopMode (loopMode);
48 _ref ().JoinMulticastGroup (iaddr, onInterface);
53 _ref ().LeaveMulticastGroup (iaddr, onInterface);
55 inline void ConnectionlessSocket::Ptr::JoinMulticastGroup (
const InternetAddress& iaddr,
unsigned int onInterfaceIndex)
const
58 _ref ().JoinMulticastGroup (iaddr, onInterfaceIndex);
60 inline void ConnectionlessSocket::Ptr::LeaveMulticastGroup (
const InternetAddress& iaddr,
unsigned int onInterfaceIndex)
const
63 _ref ().LeaveMulticastGroup (iaddr, onInterfaceIndex);
65 inline void ConnectionlessSocket::Ptr::SetMulticastInterface (
const InternetAddress& interfaceAddress)
const
68 _ref ().SetMulticastInterface (interfaceAddress);
70 inline void ConnectionlessSocket::Ptr::SetMulticastInterface (
unsigned int interfaceIndex)
const
73 _ref ().SetMulticastInterface (interfaceIndex);
75 inline void ConnectionlessSocket::Ptr::SendTo (span<const byte> data,
const SocketAddress& sockAddr)
const
78 _ref ().SendTo (data.data (), data.data () + data.size (), sockAddr);
80 inline bool ConnectionlessSocket::Ptr::GetReceivePacketInfo ()
const
83 return _cref ().GetReceivePacketInfo ();
85 inline void ConnectionlessSocket::Ptr::SetReceivePacketInfo (
bool on)
const
88 _ref ().SetReceivePacketInfo (on);
92 return ReceiveFrom (into, flag, fromAddress,
nullptr, timeout);
94 inline span<byte> ConnectionlessSocket::Ptr::ReceiveFrom (span<byte> into,
int flag,
SocketAddress* fromAddress,
98 size_t r = _ref ().ReceiveFrom (into.data (), into.data () + into.size (), flag, fromAddress, packetInfo, timeout);
99 return into.subspan (0, r);
101 inline shared_ptr<ConnectionlessSocket::_IRep> ConnectionlessSocket::Ptr::_GetSharedRep ()
const
104 return Debug::UncheckedDynamicPointerCast<ConnectionlessSocket::_IRep> (inherited::_GetSharedRep ());
106 inline ConnectionlessSocket::_IRep& ConnectionlessSocket::Ptr::_ref ()
const
109 return *
reinterpret_cast<_IRep*
> (&inherited::_ref ());
111 inline const ConnectionlessSocket::_IRep& ConnectionlessSocket::Ptr::_cref ()
const
114 return *
reinterpret_cast<const _IRep*
> (&inherited::_cref ());
#define AssertMember(p, c)
chrono::duration< double > DurationSeconds
chrono::duration<double> - a time span (length of time) measured in seconds, but high precision.
shared_lock< const AssertExternallySynchronizedChecker > ReadContext
Instantiate AssertExternallySynchronizedChecker::ReadContext to designate an area of code where prote...