Protocols
Communication protocol objects module
- class easynetwork.protocol.BufferedStreamReceiver(serializer: BufferedIncrementalPacketSerializer[Any, _T_ReceivedPacket, _T_Buffer], converter: None = ...)
- class easynetwork.protocol.BufferedStreamReceiver(serializer: BufferedIncrementalPacketSerializer[Any, _T_ReceivedDTOPacket, _T_Buffer], converter: AbstractPacketConverterComposite[Any, _T_ReceivedPacket, Any, _T_ReceivedDTOPacket])
Bases:
Generic
[_T_ReceivedPacket
,_T_Buffer
]A specialization of
StreamProtocol
in order to use a buffered incremental serializer.Warning
It is not recommended to instantiate BufferedStreamReceiver objects directly; use
StreamProtocol.buffered_receiver()
instead.- Parameters:
serializer (BufferedIncrementalPacketSerializer[Any, Any, _T_Buffer]) – The buffered incremental serializer to use.
converter (AbstractPacketConverterComposite[Any, _T_ReceivedPacket, Any, Any] | None) – The converter to use.
- create_buffer(sizehint)
Called to allocate a new receive buffer.
See
BufferedIncrementalPacketSerializer.create_deserializer_buffer()
for details.- Return type:
_T_Buffer
- build_packet_from_buffer(buffer)
Creates a Python object representing the raw packet.
- Parameters:
buffer (_T_Buffer) – The buffer allocated by
create_buffer()
.- Raises:
StreamProtocolParseError – in case of deserialization error.
StreamProtocolParseError – in case of conversion error (if there is a converter).
RuntimeError – The serializer raised
DeserializeError
instead ofIncrementalDeserializeError
.
- Yields:
until the whole packet has been deserialized.
See
BufferedIncrementalPacketSerializer.buffered_incremental_deserialize()
for details.- Returns:
a tuple with the deserialized Python object and the unused trailing data.
See
BufferedIncrementalPacketSerializer.buffered_incremental_deserialize()
for details.- Return type:
Generator[int | None, int, tuple[~_T_ReceivedPacket, bytes | bytearray | memoryview]]
- class easynetwork.protocol.DatagramProtocol(serializer: AbstractPacketSerializer[_T_SentPacket, _T_ReceivedPacket], converter: None = ...)
- class easynetwork.protocol.DatagramProtocol(serializer: AbstractPacketSerializer[_T_SentDTOPacket, _T_ReceivedDTOPacket], converter: AbstractPacketConverterComposite[_T_SentPacket, _T_ReceivedPacket, _T_SentDTOPacket, _T_ReceivedDTOPacket])
Bases:
Generic
[_T_SentPacket
,_T_ReceivedPacket
]A protocol object class for datagram communication.
- Parameters:
serializer (AbstractPacketSerializer[Any, Any]) – The serializer to use.
converter (AbstractPacketConverterComposite[_T_SentPacket, _T_ReceivedPacket, Any, Any] | None) – The converter to use.
- build_packet_from_datagram(datagram)
Creates a Python object representing the raw datagram packet.
- Parameters:
- Raises:
DatagramProtocolParseError – in case of deserialization error.
DatagramProtocolParseError – in case of conversion error (if there is a converter).
- Returns:
the deserialized packet.
- Return type:
_T_ReceivedPacket
- class easynetwork.protocol.StreamProtocol(serializer: AbstractIncrementalPacketSerializer[_T_SentPacket, _T_ReceivedPacket], converter: None = ...)
- class easynetwork.protocol.StreamProtocol(serializer: AbstractIncrementalPacketSerializer[_T_SentDTOPacket, _T_ReceivedDTOPacket], converter: AbstractPacketConverterComposite[_T_SentPacket, _T_ReceivedPacket, _T_SentDTOPacket, _T_ReceivedDTOPacket])
Bases:
Generic
[_T_SentPacket
,_T_ReceivedPacket
]A protocol object class for connection-oriented stream communication.
- Parameters:
serializer (AbstractIncrementalPacketSerializer[Any, Any]) – The incremental serializer to use.
converter (AbstractPacketConverterComposite[_T_SentPacket, _T_ReceivedPacket, Any, Any] | None) – The converter to use.
- buffered_receiver()
Get a specialization interface in order to use the buffer API.
- Raises:
UnsupportedOperation – The serializer does not derive from
BufferedIncrementalPacketSerializer
.- Return type:
BufferedStreamReceiver[_T_ReceivedPacket, bytearray | memoryview]
- build_packet_from_chunks()
Creates a Python object representing the raw packet.
- Raises:
StreamProtocolParseError – in case of deserialization error.
StreamProtocolParseError – in case of conversion error (if there is a converter).
RuntimeError – The serializer raised
DeserializeError
instead ofIncrementalDeserializeError
.
- Yields:
- Returns:
a tuple with the deserialized Python object and the unused trailing data.
- Return type: