class DatagramSocket

Defined at line 46650 of file fidling/gen/sdk/fidl/fuchsia.posix.socket/fuchsia.posix.socket/hlcpp/fuchsia/posix/socket/cpp/fidl.h

A datagram socket.

Public Members

static const char[] Name_

Public Methods

void ~DatagramSocket ()
void Clone (::fidl::InterfaceRequest< ::fuchsia::unknown::Cloneable> request)
void Close (CloseCallback callback)

Terminates the connection.

After calling `Close`, the client must not send any other requests.

Servers, after sending the status response, should close the connection

regardless of status and without sending an epitaph.

Closing the client end of the channel should be semantically equivalent

to calling `Close` without knowing when the close has completed or its

status.

void Query (QueryCallback callback)
void SetReuseAddress (bool value, SetReuseAddressCallback callback)

Set `SOL_SOCKET` -> `SO_REUSEADDR`.

void GetReuseAddress (GetReuseAddressCallback callback)

Get `SOL_SOCKET` -> `SO_REUSEADDR`.

void GetError (GetErrorCallback callback)

Get `SOL_SOCKET` -> `SO_ERROR`.

Returns the last error if there is an error set on the socket.

void SetBroadcast (bool value, SetBroadcastCallback callback)

Set `SOL_SOCKET` -> `SO_BROADCAST`.

void GetBroadcast (GetBroadcastCallback callback)

Get `SOL_SOCKET` -> `SO_BROADCAST`.

void SetSendBuffer (uint64_t value_bytes, SetSendBufferCallback callback)

Set `SOL_SOCKET` -> `SO_SNDBUF`.

void GetSendBuffer (GetSendBufferCallback callback)

Get `SOL_SOCKET` -> `SO_SNDBUF`.

void SetReceiveBuffer (uint64_t value_bytes, SetReceiveBufferCallback callback)

Set `SOL_SOCKET` -> `SO_RCVBUF`.

void GetReceiveBuffer (GetReceiveBufferCallback callback)

Get `SOL_SOCKET` -> `SO_RCVBUF`.

void SetKeepAlive (bool value, SetKeepAliveCallback callback)

Set `SOL_SOCKET` -> `SO_KEEPALIVE`.

void GetKeepAlive (GetKeepAliveCallback callback)

Get `SOL_SOCKET` -> `SO_KEEPALIVE`.

void SetOutOfBandInline (bool value, SetOutOfBandInlineCallback callback)

Set `SOL_SOCKET` -> `SO_OOBINLINE`.

void GetOutOfBandInline (GetOutOfBandInlineCallback callback)

Get `SOL_SOCKET` -> `SO_OOBINLINE`.

void SetNoCheck (bool value, SetNoCheckCallback callback)

Set `SOL_SOCKET` -> `SO_NO_CHECK`.

void GetNoCheck (GetNoCheckCallback callback)

Get `SOL_SOCKET` -> `SO_NO_CHECK`.

void SetLinger (bool linger, uint32_t length_secs, SetLingerCallback callback)

Set `SOL_SOCKET` -> `SO_LINGER`.

void GetLinger (GetLingerCallback callback)

Get `SOL_SOCKET` -> `SO_LINGER`.

void SetReusePort (::fuchsia::posix::socket::ReusePortOption value, SetReusePortCallback callback)

Set `SOL_SOCKET` -> `SO_REUSEPORT`.

void SetReusePortDeprecated (bool value, SetReusePortDeprecatedCallback callback)
void GetReusePort (GetReusePortCallback callback)

Get `SOL_SOCKET` -> `SO_REUSEPORT`.

void GetAcceptConn (GetAcceptConnCallback callback)

Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.

void SetBindToDevice (::std::string value, SetBindToDeviceCallback callback)

Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void GetBindToDevice (GetBindToDeviceCallback callback)

Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void SetBindToInterfaceIndex (uint64_t value, SetBindToInterfaceIndexCallback callback)

Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

If `value` is 0, this clears the bound interface.

void GetBindToInterfaceIndex (GetBindToInterfaceIndexCallback callback)

Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

void SetTimestamp (::fuchsia::posix::socket::TimestampOption value, SetTimestampCallback callback)

Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.

void GetTimestamp (GetTimestampCallback callback)

Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.

void SetMark (::fuchsia::net::MarkDomain domain, ::fuchsia::posix::socket::OptionalUint32 mark, SetMarkCallback callback)

Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that

unlike the standard SO_MARK, this API has multiple mark domains and each

mark can be set independently in each domain.

void GetMark (::fuchsia::net::MarkDomain domain, GetMarkCallback callback)

Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that

unlike the standard SO_MARK, this API has multiple mark domains and each

mark can be retrieved independently in each domain.

void GetCookie (GetCookieCallback callback)

Get `SOL_SOCKET` -> `SO_COOKIE`.

void Bind (::fuchsia::net::SocketAddress addr, BindCallback callback)

Sets the local address used for the socket.

void Connect (::fuchsia::net::SocketAddress addr, ConnectCallback callback)

Initiates a connection to a remote address.

void Disconnect (DisconnectCallback callback)

Clears connection information from this socket.

void GetSockName (GetSockNameCallback callback)

Retrieves the local socket address.

void GetPeerName (GetPeerNameCallback callback)

Retrieves the remote socket address.

void Shutdown (::fuchsia::posix::socket::ShutdownMode mode, ShutdownCallback callback)

Shuts down part of the socket.

void SetIpTypeOfService (uint8_t value, SetIpTypeOfServiceCallback callback)

Set `SOL_IP` -> `IP_TOS`.

void GetIpTypeOfService (GetIpTypeOfServiceCallback callback)

Get `SOL_IP` -> `IP_TOS`.

void SetIpTtl (::fuchsia::posix::socket::OptionalUint8 value, SetIpTtlCallback callback)

Set `SOL_IP` -> `IP_TTL`.

void GetIpTtl (GetIpTtlCallback callback)

Get `SOL_IP` -> `IP_TTL`.

void SetIpPacketInfo (bool value, SetIpPacketInfoCallback callback)

Set `SOL_IP` -> `IP_PKTINFO`.

void GetIpPacketInfo (GetIpPacketInfoCallback callback)

Get `SOL_IP` -> `IP_PKTINFO`.

void SetIpReceiveTypeOfService (bool value, SetIpReceiveTypeOfServiceCallback callback)

Set `SOL_IP` -> `IP_RECVTOS`.

void GetIpReceiveTypeOfService (GetIpReceiveTypeOfServiceCallback callback)

Get `SOL_IP` -> `IP_RECVTOS`.

void SetIpReceiveTtl (bool value, SetIpReceiveTtlCallback callback)

Set `SOL_IP` -> `IP_RECVTTL`.

void GetIpReceiveTtl (GetIpReceiveTtlCallback callback)

Get `SOL_IP` -> `IP_RECVTTL`.

void SetIpMulticastInterface (uint64_t iface, ::fuchsia::net::Ipv4Address address, SetIpMulticastInterfaceCallback callback)

Set `SOL_IP` -> `IP_MULTICAST_IF`.

void GetIpMulticastInterface (GetIpMulticastInterfaceCallback callback)

Get `SOL_IP` -> `IP_MULTICAST_IF`.

void SetIpMulticastTtl (::fuchsia::posix::socket::OptionalUint8 value, SetIpMulticastTtlCallback callback)

Set `SOL_IP` -> `IP_MULTICAST_TTL`.

void GetIpMulticastTtl (GetIpMulticastTtlCallback callback)

Get `SOL_IP` -> `IP_MULTICAST_TTL`.

void SetIpMulticastLoopback (bool value, SetIpMulticastLoopbackCallback callback)

Set `SOL_IP` -> `IP_MULTICAST_LOOP`.

void GetIpMulticastLoopback (GetIpMulticastLoopbackCallback callback)

Get `SOL_IP` -> `IP_MULTICAST_LOOP`.

void AddIpMembership (::fuchsia::posix::socket::IpMulticastMembership membership, AddIpMembershipCallback callback)

Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`

void DropIpMembership (::fuchsia::posix::socket::IpMulticastMembership membership, DropIpMembershipCallback callback)

Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`

void SetIpTransparent (bool value, SetIpTransparentCallback callback)

Set `SOL_IP` -> `IP_TRANSPARENT`

void GetIpTransparent (GetIpTransparentCallback callback)

Get `SOL_IP` -> `IP_TRANSPARENT`

void SetIpReceiveOriginalDestinationAddress (bool value, SetIpReceiveOriginalDestinationAddressCallback callback)

Set `SOL_IP` -> `IP_RECVORIGDSTADDR`

void GetIpReceiveOriginalDestinationAddress (GetIpReceiveOriginalDestinationAddressCallback callback)

Get `SOL_IP` -> `IP_RECVORIGDSTADDR`

void AddIpv6Membership (::fuchsia::posix::socket::Ipv6MulticastMembership membership, AddIpv6MembershipCallback callback)

Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.

void DropIpv6Membership (::fuchsia::posix::socket::Ipv6MulticastMembership membership, DropIpv6MembershipCallback callback)

Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.

void SetIpv6MulticastInterface (uint64_t value, SetIpv6MulticastInterfaceCallback callback)

Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.

void GetIpv6MulticastInterface (GetIpv6MulticastInterfaceCallback callback)

Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.

void SetIpv6UnicastHops (::fuchsia::posix::socket::OptionalUint8 value, SetIpv6UnicastHopsCallback callback)

Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.

void GetIpv6UnicastHops (GetIpv6UnicastHopsCallback callback)

Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.

void SetIpv6ReceiveHopLimit (bool value, SetIpv6ReceiveHopLimitCallback callback)

Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.

void GetIpv6ReceiveHopLimit (GetIpv6ReceiveHopLimitCallback callback)

Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.

void SetIpv6MulticastHops (::fuchsia::posix::socket::OptionalUint8 value, SetIpv6MulticastHopsCallback callback)

Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.

void GetIpv6MulticastHops (GetIpv6MulticastHopsCallback callback)

Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.

void SetIpv6MulticastLoopback (bool value, SetIpv6MulticastLoopbackCallback callback)

Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.

void GetIpv6MulticastLoopback (GetIpv6MulticastLoopbackCallback callback)

Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.

void SetIpv6Only (bool value, SetIpv6OnlyCallback callback)

Set `SOL_IPV6` -> `IPV6_V6ONLY`.

void GetIpv6Only (GetIpv6OnlyCallback callback)

Get `SOL_IPV6` -> `IPV6_V6ONLY`.

void SetIpv6ReceiveTrafficClass (bool value, SetIpv6ReceiveTrafficClassCallback callback)

Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.

void GetIpv6ReceiveTrafficClass (GetIpv6ReceiveTrafficClassCallback callback)

Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.

void SetIpv6TrafficClass (::fuchsia::posix::socket::OptionalUint8 value, SetIpv6TrafficClassCallback callback)

Set `SOL_IPV6` -> `IPV6_TCLASS`

void GetIpv6TrafficClass (GetIpv6TrafficClassCallback callback)

Get `SOL_IPV6` -> `IPV6_TCLASS`.

void SetIpv6ReceivePacketInfo (bool value, SetIpv6ReceivePacketInfoCallback callback)

Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.

void GetIpv6ReceivePacketInfo (GetIpv6ReceivePacketInfoCallback callback)

Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.

void GetOriginalDestination (GetOriginalDestinationCallback callback)

Get `SOL_IP` -> `SO_ORIGINAL_DST`.

void GetInfo (GetInfoCallback callback)

Retrieves creation information from the socket.

- response `domain` the socket's associated domain.

- response `proto` the socket's associated protocol.

void Describe (DescribeCallback callback)
void SendMsgPreflight (::fuchsia::posix::socket::DatagramSocketSendMsgPreflightRequest DatagramSocketSendMsgPreflightRequest, SendMsgPreflightCallback callback)

Validates that data can be sent.

+ request `args` the requested disposition of data to be sent.

- response the constraints sent data must satisfy.

* error the error code indicating the reason for validation failure.

void RecvMsgPostflight (RecvMsgPostflightCallback callback)

Returns the set of requested control messages.

- response the set of currently requested control messages.