File: //lib/python3/dist-packages/twisted/python/__pycache__/sendmsg.cpython-38.pyc
U
�bz
� @ s� d Z ddlmZ ddlmZmZmZ ddlmZm Z ddddgZ
ed d
ddg�Zg dfeeee e
e
ef e
e
d
�dd�Zdee
e
e
ed�dd�Zee
d�dd�ZdS )z/
sendmsg(2) and recvmsg(2) support for Python.
� )�
namedtuple)�
CMSG_SPACE�
SCM_RIGHTS�socket)�List�Tuple�sendmsg�recvmsg�getSocketFamilyr �ReceivedMessage�data� ancillary�flags)r r r
r �returnc C s | � |g||�S )a
Send a message on a socket.
@param socket: The socket to send the message on.
@param data: Bytes to write to the socket.
@param ancillary: Extra data to send over the socket outside of the normal
datagram or stream mechanism. By default no ancillary data is sent.
@param flags: Flags to affect how the message is sent. See the C{MSG_}
constants in the sendmsg(2) manual page. By default no flags are set.
@return: The return value of the underlying syscall, if it succeeds.
)r )r r r
r � r �8/usr/lib/python3/dist-packages/twisted/python/sendmsg.pyr s � � )r �maxSize�cmsgSizer r c C s. | � |t|�|�dd� \}}}t|||d�S )a
Receive a message on a socket.
@param socket: The socket to receive the message on.
@param maxSize: The maximum number of bytes to receive from the socket using
the datagram or stream mechanism. The default maximum is 8192.
@param cmsgSize: The maximum number of bytes to receive from the socket
outside of the normal datagram or stream mechanism. The default maximum
is 4096.
@param flags: Flags to affect how the message is sent. See the C{MSG_}
constants in the sendmsg(2) manual page. By default no flags are set.
@return: A named 3-tuple of the bytes received using the datagram/stream
mechanism, a L{list} of L{tuple}s giving ancillary received data, and
flags as an L{int} describing the data received.
r � )r r
r )r r r )r r r r r r
r r r r ) s )r r c C s | j S )ze
Return the family of the given socket.
@param socket: The socket to get the family of.
)�family)r r r r r
F s N)r r r )�__doc__�collectionsr r r r ZSocket�typingr r �__all__r �bytes�intr r r
r r r r �<module> s2 �� � �