template <>

class WireServer

Defined at line 9639 of file fidling/gen/sdk/fidl/fuchsia.posix.socket.packet/fuchsia.posix.socket.packet/cpp/fidl/fuchsia.posix.socket.packet/cpp/wire_messaging.h

Pure-virtual interface to be implemented by a server.

This interface uses typed channels (i.e. |::fidl::ClientEnd

<

::fuchsia_posix_socket_packet::Socket>|

and |::fidl::ServerEnd

<

::fuchsia_posix_socket_packet::Socket>|).

Public Methods

void Clone (::fuchsia_unknown::wire::CloneableCloneRequest * 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 SetReuseAddress (::fuchsia_posix_socket::wire::BaseSocketSetReuseAddressRequest * request, SetReuseAddressCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_REUSEADDR`.

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 SetBroadcast (::fuchsia_posix_socket::wire::BaseSocketSetBroadcastRequest * request, SetBroadcastCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BROADCAST`.

void GetBroadcast (GetBroadcastCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BROADCAST`.

void SetSendBuffer (::fuchsia_posix_socket::wire::BaseSocketSetSendBufferRequest * request, SetSendBufferCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_SNDBUF`.

void GetSendBuffer (GetSendBufferCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_SNDBUF`.

void SetReceiveBuffer (::fuchsia_posix_socket::wire::BaseSocketSetReceiveBufferRequest * request, SetReceiveBufferCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_RCVBUF`.

void GetReceiveBuffer (GetReceiveBufferCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_RCVBUF`.

void SetKeepAlive (::fuchsia_posix_socket::wire::BaseSocketSetKeepAliveRequest * request, SetKeepAliveCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_KEEPALIVE`.

void GetKeepAlive (GetKeepAliveCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_KEEPALIVE`.

void SetOutOfBandInline (::fuchsia_posix_socket::wire::BaseSocketSetOutOfBandInlineRequest * request, SetOutOfBandInlineCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_OOBINLINE`.

void GetOutOfBandInline (GetOutOfBandInlineCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_OOBINLINE`.

void SetNoCheck (::fuchsia_posix_socket::wire::BaseSocketSetNoCheckRequest * request, SetNoCheckCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_NO_CHECK`.

void GetNoCheck (GetNoCheckCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_NO_CHECK`.

void SetLinger (::fuchsia_posix_socket::wire::BaseSocketSetLingerRequest * request, SetLingerCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_LINGER`.

void GetLinger (GetLingerCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_LINGER`.

void SetReusePort (::fuchsia_posix_socket::wire::BaseSocketSetReusePortRequest * request, SetReusePortCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_REUSEPORT`.

void SetReusePortDeprecated (::fuchsia_posix_socket::wire::BaseSocketSetReusePortDeprecatedRequest * request, SetReusePortDeprecatedCompleter::Sync & completer)
void GetReusePort (GetReusePortCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_REUSEPORT`.

void GetAcceptConn (GetAcceptConnCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.

void SetBindToDevice (::fuchsia_posix_socket::wire::BaseSocketSetBindToDeviceRequest * request, SetBindToDeviceCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void GetBindToDevice (GetBindToDeviceCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.

void SetBindToInterfaceIndex (::fuchsia_posix_socket::wire::BaseSocketSetBindToInterfaceIndexRequest * request, SetBindToInterfaceIndexCompleter::Sync & completer)

Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

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

void GetBindToInterfaceIndex (GetBindToInterfaceIndexCompleter::Sync & completer)

Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.

void SetTimestamp (::fuchsia_posix_socket::wire::BaseSocketSetTimestampRequest * request, SetTimestampCompleter::Sync & completer)

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

void GetTimestamp (GetTimestampCompleter::Sync & completer)

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

void SetMark (::fuchsia_posix_socket::wire::BaseSocketSetMarkRequest * 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 GetMark (::fuchsia_posix_socket::wire::BaseSocketGetMarkRequest * 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 Describe (DescribeCompleter::Sync & completer)
void Bind (::fuchsia_posix_socket_packet::wire::SocketBindRequest * request, BindCompleter::Sync & completer)

Bind the socket to a protocol and/or interface.

+ request `protocol` the socket's new protocol association.

+ request `bound_interface_id` the socket's new interface binding.

void GetInfo (GetInfoCompleter::Sync & completer)

Returns the the socket's properties.

- response `kind` the socket's `Kind`.

- response `protocol` the socket's protocol association, if associated.

- response `bound_interface` properties of the socket's interface

binding.

void RecvMsg (::fuchsia_posix_socket_packet::wire::SocketRecvMsgRequest * request, RecvMsgCompleter::Sync & completer)

Receives a message from the socket.

+ request `want_packet_info` request information about the packet to be

returned.

+ request `data_len` the maximum allowed length of the response data

buffer.

+ request `want_control` request ancillary data to be returned.

+ request `flags` flags for the receive request.

- response `packet_info` information about the packet, if requested.

- response `data` the message.

- response `control` control messages, if requested.

- response `truncated` indicates whether or not the returned message

was truncated.

void SendMsg (::fuchsia_posix_socket_packet::wire::SocketSendMsgRequest * request, SendMsgCompleter::Sync & completer)

Sends a message on the socket.

+ request `packet_info` information about the packet.

+ request `data` the message.

+ request `control` ancillary data.

+ request `flags` flags for the send request.

void AttachBpfFilterUnsafe (::fuchsia_posix_socket_packet::wire::SocketAttachBpfFilterUnsafeRequest * request, AttachBpfFilterUnsafeCompleter::Sync & completer)

Attaches the specified eBPF filter. The filter is assumed to be verified with 2 arguments

1. Pointer to the packet of size 0, i.e. not accessed directly (only using cBPF packet

load instructions).

2. Packet size (BPF_LOAD).

Helper functions and maps are not supported.

void WireServer ()

Defined at line 9642 of file fidling/gen/sdk/fidl/fuchsia.posix.socket.packet/fuchsia.posix.socket.packet/cpp/fidl/fuchsia.posix.socket.packet/cpp/wire_messaging.h

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 ~WireServer ()

Defined at line 9643 of file fidling/gen/sdk/fidl/fuchsia.posix.socket.packet/fuchsia.posix.socket.packet/cpp/fidl/fuchsia.posix.socket.packet/cpp/wire_messaging.h