class StreamSocket
Defined at line 48927 of file fidling/gen/sdk/fidl/fuchsia.posix.socket/fuchsia.posix.socket/hlcpp/fuchsia/posix/socket/cpp/fidl.h
A stream socket.
All methods on this type are nonblocking; their exact behaviors match their
Linux counterparts.
*Warning:* This protocol is not yet ready for direct use by clients.
Instead, clients should use the BSD sockets API to interact with sockets.
We plan to change this protocol substantially and clients that couple
directly to this protocol will make those changes more difficult.
Public Members
static const char[] Name_
Public Methods
void ~StreamSocket ()
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 Describe (DescribeCallback callback)
void Listen (int16_t backlog, ListenCallback callback)
Begins listening for new incoming connections. At most `backlog`
connections will be buffered.
void Accept (bool want_addr, AcceptCallback callback)
Accepts a buffered incoming connection.
void GetInfo (GetInfoCallback callback)
Retrieves creation information from the socket.
void SetTcpNoDelay (bool value, SetTcpNoDelayCallback callback)
Set `SOL_TCP` -> `TCP_NODELAY`.
void GetTcpNoDelay (GetTcpNoDelayCallback callback)
Get `SOL_TCP` -> `TCP_NODELAY`.
void SetTcpMaxSegment (uint32_t value_bytes, SetTcpMaxSegmentCallback callback)
Set `SOL_TCP` -> `TCP_MAXSEG`.
void GetTcpMaxSegment (GetTcpMaxSegmentCallback callback)
Get `SOL_TCP` -> `TCP_MAXSEG`.
void SetTcpCork (bool value, SetTcpCorkCallback callback)
Set `SOL_TCP` -> `TCP_CORK`.
void GetTcpCork (GetTcpCorkCallback callback)
Get `SOL_TCP` -> `TCP_CORK`.
void SetTcpKeepAliveIdle (uint32_t value_secs, SetTcpKeepAliveIdleCallback callback)
Set `SOL_TCP` -> `TCP_KEEPIDLE`.
void GetTcpKeepAliveIdle (GetTcpKeepAliveIdleCallback callback)
Get `SOL_TCP` -> `TCP_KEEPIDLE`.
void SetTcpKeepAliveInterval (uint32_t value_secs, SetTcpKeepAliveIntervalCallback callback)
Set `SOL_TCP` -> `TCP_KEEPINTVL`.
void GetTcpKeepAliveInterval (GetTcpKeepAliveIntervalCallback callback)
Get `SOL_TCP` -> `TCP_KEEPINTVL`.
void SetTcpKeepAliveCount (uint32_t value, SetTcpKeepAliveCountCallback callback)
Set `SOL_TCP` -> `TCP_KEEPCNT`.
void GetTcpKeepAliveCount (GetTcpKeepAliveCountCallback callback)
Get `SOL_TCP` -> `TCP_KEEPCNT`.
void SetTcpSynCount (uint32_t value, SetTcpSynCountCallback callback)
Set `SOL_TCP` -> `TCP_SYNCNT`.
void GetTcpSynCount (GetTcpSynCountCallback callback)
Get `SOL_TCP` -> `TCP_SYNCNT`.
void SetTcpLinger (::fuchsia::posix::socket::OptionalUint32 value_secs, SetTcpLingerCallback callback)
Set `SOL_TCP` -> `TCP_LINGER2`.
void GetTcpLinger (GetTcpLingerCallback callback)
Get `SOL_TCP` -> `TCP_LINGER2`.
void SetTcpDeferAccept (uint32_t value_secs, SetTcpDeferAcceptCallback callback)
Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
void GetTcpDeferAccept (GetTcpDeferAcceptCallback callback)
Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
void SetTcpWindowClamp (uint32_t value, SetTcpWindowClampCallback callback)
Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
void GetTcpWindowClamp (GetTcpWindowClampCallback callback)
Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
void GetTcpInfo (GetTcpInfoCallback callback)
Get `SOL_TCP` -> `TCP_INFO`.
void SetTcpQuickAck (bool value, SetTcpQuickAckCallback callback)
Set `SOL_TCP` -> `TCP_QUICKACK`.
void GetTcpQuickAck (GetTcpQuickAckCallback callback)
Get `SOL_TCP` -> `TCP_QUICKACK`.
void SetTcpCongestion (::fuchsia::posix::socket::TcpCongestionControl value, SetTcpCongestionCallback callback)
Set `SOL_TCP` -> `TCP_CONGESTION`.
void GetTcpCongestion (GetTcpCongestionCallback callback)
Get `SOL_TCP` -> `TCP_CONGESTION`.
void SetTcpUserTimeout (uint32_t value_millis, SetTcpUserTimeoutCallback callback)
Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
void GetTcpUserTimeout (GetTcpUserTimeoutCallback callback)
Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.