template <>

class Server

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

Public Methods

void Clone (CloneRequest & request, CloneCompleter::Sync & completer)
void Close (CloseCompleter::Sync & completer)

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 (QueryCompleter::Sync & completer)
void GetReuseAddress (GetReuseAddressCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_REUSEADDR`.

void GetError (GetErrorCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_ERROR`.

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

void GetBroadcast (GetBroadcastCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BROADCAST`.

void GetSendBuffer (GetSendBufferCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_SNDBUF`.

void GetReceiveBuffer (GetReceiveBufferCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_RCVBUF`.

void GetKeepAlive (GetKeepAliveCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_KEEPALIVE`.

void GetOutOfBandInline (GetOutOfBandInlineCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_OOBINLINE`.

void GetNoCheck (GetNoCheckCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_NO_CHECK`.

void GetLinger (GetLingerCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_LINGER`.

void GetReusePort (GetReusePortCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_REUSEPORT`.

void GetAcceptConn (GetAcceptConnCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.

void GetBindToDevice (GetBindToDeviceCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void GetBindToInterfaceIndex (GetBindToInterfaceIndexCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

void GetTimestamp (GetTimestampCompleter::Sync & completer)

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

void GetMark (GetMarkRequest & request, GetMarkCompleter::Sync & completer)

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 (GetCookieCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_COOKIE`.

void Bind (BindRequest & request, BindCompleter::Sync & completer)

Sets the local address used for the socket.

void Connect (ConnectRequest & request, ConnectCompleter::Sync & completer)

Initiates a connection to a remote address.

void Disconnect (DisconnectCompleter::Sync & completer)

Clears connection information from this socket.

void GetSockName (GetSockNameCompleter::Sync & completer)

Retrieves the local socket address.

void GetPeerName (GetPeerNameCompleter::Sync & completer)

Retrieves the remote socket address.

void GetIpTypeOfService (GetIpTypeOfServiceCompleter::Sync & completer)

Get `SOL_IP` -> `IP_TOS`.

void GetIpTtl (GetIpTtlCompleter::Sync & completer)

Get `SOL_IP` -> `IP_TTL`.

void GetIpPacketInfo (GetIpPacketInfoCompleter::Sync & completer)

Get `SOL_IP` -> `IP_PKTINFO`.

void GetIpReceiveTypeOfService (GetIpReceiveTypeOfServiceCompleter::Sync & completer)

Get `SOL_IP` -> `IP_RECVTOS`.

void GetIpReceiveTtl (GetIpReceiveTtlCompleter::Sync & completer)

Get `SOL_IP` -> `IP_RECVTTL`.

void GetIpMulticastInterface (GetIpMulticastInterfaceCompleter::Sync & completer)

Get `SOL_IP` -> `IP_MULTICAST_IF`.

void GetIpMulticastTtl (GetIpMulticastTtlCompleter::Sync & completer)

Get `SOL_IP` -> `IP_MULTICAST_TTL`.

void GetIpMulticastLoopback (GetIpMulticastLoopbackCompleter::Sync & completer)

Get `SOL_IP` -> `IP_MULTICAST_LOOP`.

void AddIpMembership (AddIpMembershipRequest & request, AddIpMembershipCompleter::Sync & completer)

Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`

void DropIpMembership (DropIpMembershipRequest & request, DropIpMembershipCompleter::Sync & completer)

Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`

void GetIpTransparent (GetIpTransparentCompleter::Sync & completer)

Get `SOL_IP` -> `IP_TRANSPARENT`

void GetIpReceiveOriginalDestinationAddress (GetIpReceiveOriginalDestinationAddressCompleter::Sync & completer)

Get `SOL_IP` -> `IP_RECVORIGDSTADDR`

void AddIpv6Membership (AddIpv6MembershipRequest & request, AddIpv6MembershipCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.

void DropIpv6Membership (DropIpv6MembershipRequest & request, DropIpv6MembershipCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.

void GetIpv6MulticastInterface (GetIpv6MulticastInterfaceCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.

void GetIpv6UnicastHops (GetIpv6UnicastHopsCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.

void GetIpv6ReceiveHopLimit (GetIpv6ReceiveHopLimitCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.

void GetIpv6MulticastHops (GetIpv6MulticastHopsCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.

void GetIpv6MulticastLoopback (GetIpv6MulticastLoopbackCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.

void GetIpv6Only (GetIpv6OnlyCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_V6ONLY`.

void GetIpv6ReceiveTrafficClass (GetIpv6ReceiveTrafficClassCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.

void GetIpv6TrafficClass (GetIpv6TrafficClassCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_TCLASS`.

void GetIpv6ReceivePacketInfo (GetIpv6ReceivePacketInfoCompleter::Sync & completer)

Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.

void GetOriginalDestination (GetOriginalDestinationCompleter::Sync & completer)

Get `SOL_IP` -> `SO_ORIGINAL_DST`.

void Server ()

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

void SetReuseAddress (SetReuseAddressRequest & request, SetReuseAddressCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_REUSEADDR`.

void SetBroadcast (SetBroadcastRequest & request, SetBroadcastCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BROADCAST`.

void SetSendBuffer (SetSendBufferRequest & request, SetSendBufferCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_SNDBUF`.

void SetReceiveBuffer (SetReceiveBufferRequest & request, SetReceiveBufferCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_RCVBUF`.

void SetKeepAlive (SetKeepAliveRequest & request, SetKeepAliveCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_KEEPALIVE`.

void SetOutOfBandInline (SetOutOfBandInlineRequest & request, SetOutOfBandInlineCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_OOBINLINE`.

void SetNoCheck (SetNoCheckRequest & request, SetNoCheckCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_NO_CHECK`.

void SetLinger (SetLingerRequest & request, SetLingerCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_LINGER`.

void SetReusePort (SetReusePortRequest & request, SetReusePortCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_REUSEPORT`.

void SetReusePortDeprecated (SetReusePortDeprecatedRequest & request, SetReusePortDeprecatedCompleter::Sync & completer)
void SetBindToDevice (SetBindToDeviceRequest & request, SetBindToDeviceCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void SetBindToInterfaceIndex (SetBindToInterfaceIndexRequest & request, SetBindToInterfaceIndexCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

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

void SetTimestamp (SetTimestampRequest & request, SetTimestampCompleter::Sync & completer)

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

void SetMark (SetMarkRequest & request, SetMarkCompleter::Sync & completer)

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 Shutdown (ShutdownRequest & request, ShutdownCompleter::Sync & completer)

Shuts down part of the socket.

void SetIpTypeOfService (SetIpTypeOfServiceRequest & request, SetIpTypeOfServiceCompleter::Sync & completer)

Set `SOL_IP` -> `IP_TOS`.

void SetIpTtl (SetIpTtlRequest & request, SetIpTtlCompleter::Sync & completer)

Set `SOL_IP` -> `IP_TTL`.

void SetIpPacketInfo (SetIpPacketInfoRequest & request, SetIpPacketInfoCompleter::Sync & completer)

Set `SOL_IP` -> `IP_PKTINFO`.

void SetIpReceiveTypeOfService (SetIpReceiveTypeOfServiceRequest & request, SetIpReceiveTypeOfServiceCompleter::Sync & completer)

Set `SOL_IP` -> `IP_RECVTOS`.

void SetIpReceiveTtl (SetIpReceiveTtlRequest & request, SetIpReceiveTtlCompleter::Sync & completer)

Set `SOL_IP` -> `IP_RECVTTL`.

void SetIpMulticastInterface (SetIpMulticastInterfaceRequest & request, SetIpMulticastInterfaceCompleter::Sync & completer)

Set `SOL_IP` -> `IP_MULTICAST_IF`.

void SetIpMulticastTtl (SetIpMulticastTtlRequest & request, SetIpMulticastTtlCompleter::Sync & completer)

Set `SOL_IP` -> `IP_MULTICAST_TTL`.

void SetIpMulticastLoopback (SetIpMulticastLoopbackRequest & request, SetIpMulticastLoopbackCompleter::Sync & completer)

Set `SOL_IP` -> `IP_MULTICAST_LOOP`.

void SetIpTransparent (SetIpTransparentRequest & request, SetIpTransparentCompleter::Sync & completer)

Set `SOL_IP` -> `IP_TRANSPARENT`

void SetIpReceiveOriginalDestinationAddress (SetIpReceiveOriginalDestinationAddressRequest & request, SetIpReceiveOriginalDestinationAddressCompleter::Sync & completer)

Set `SOL_IP` -> `IP_RECVORIGDSTADDR`

void SetIpv6MulticastInterface (SetIpv6MulticastInterfaceRequest & request, SetIpv6MulticastInterfaceCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.

void SetIpv6UnicastHops (SetIpv6UnicastHopsRequest & request, SetIpv6UnicastHopsCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.

void SetIpv6ReceiveHopLimit (SetIpv6ReceiveHopLimitRequest & request, SetIpv6ReceiveHopLimitCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.

void SetIpv6MulticastHops (SetIpv6MulticastHopsRequest & request, SetIpv6MulticastHopsCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.

void SetIpv6MulticastLoopback (SetIpv6MulticastLoopbackRequest & request, SetIpv6MulticastLoopbackCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.

void SetIpv6Only (SetIpv6OnlyRequest & request, SetIpv6OnlyCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_V6ONLY`.

void SetIpv6ReceiveTrafficClass (SetIpv6ReceiveTrafficClassRequest & request, SetIpv6ReceiveTrafficClassCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.

void SetIpv6TrafficClass (SetIpv6TrafficClassRequest & request, SetIpv6TrafficClassCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_TCLASS`

void SetIpv6ReceivePacketInfo (SetIpv6ReceivePacketInfoRequest & request, SetIpv6ReceivePacketInfoCompleter::Sync & completer)

Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.

Handler bind_handler (async_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~Server ()

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