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