Protocols
Communication protocol objects module
- class easynetwork.protocol.BufferedStreamReceiver(serializer: BufferedIncrementalPacketSerializer[Any, _ReceivedPacketT, _BufferT], converter: None = ...)
- class easynetwork.protocol.BufferedStreamReceiver(serializer: BufferedIncrementalPacketSerializer[Any, _ReceivedDTOPacketT, _BufferT], converter: AbstractPacketConverterComposite[Any, _ReceivedPacketT, Any, _ReceivedDTOPacketT])
Bases:
Generic
[_ReceivedPacketT
,_BufferT
]A specialization of
StreamProtocol
in order to use a buffered incremental serializer.It is not recommended to instantiate BufferedStreamReceiver objects directly; use
StreamProtocol.buffered_receiver()
instead.- Parameters:
serializer (BufferedIncrementalPacketSerializer[Any, Any, _BufferT]) – The buffered incremental serializer to use.
converter (AbstractPacketConverterComposite[Any, _ReceivedPacketT, 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:
_BufferT
- build_packet_from_buffer(buffer)
Creates a Python object representing the raw packet.
- Parameters:
buffer (_BufferT) – 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[~_ReceivedPacketT, bytes | bytearray | memoryview]]
- class easynetwork.protocol.DatagramProtocol(serializer: AbstractPacketSerializer[_SentPacketT, _ReceivedPacketT], converter: None = ...)
- class easynetwork.protocol.DatagramProtocol(serializer: AbstractPacketSerializer[_SentDTOPacketT, _ReceivedDTOPacketT], converter: AbstractPacketConverterComposite[_SentPacketT, _ReceivedPacketT, _SentDTOPacketT, _ReceivedDTOPacketT])
Bases:
Generic
[_SentPacketT
,_ReceivedPacketT
]A protocol object class for datagram communication.
- Parameters:
serializer (AbstractPacketSerializer[Any, Any]) – The serializer to use.
converter (AbstractPacketConverterComposite[_SentPacketT, _ReceivedPacketT, 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:
_ReceivedPacketT
- class easynetwork.protocol.StreamProtocol(serializer: AbstractIncrementalPacketSerializer[_SentPacketT, _ReceivedPacketT], converter: None = ...)
- class easynetwork.protocol.StreamProtocol(serializer: AbstractIncrementalPacketSerializer[_SentDTOPacketT, _ReceivedDTOPacketT], converter: AbstractPacketConverterComposite[_SentPacketT, _ReceivedPacketT, _SentDTOPacketT, _ReceivedDTOPacketT])
Bases:
Generic
[_SentPacketT
,_ReceivedPacketT
]A protocol object class for connection-oriented stream communication.
- Parameters:
serializer (AbstractIncrementalPacketSerializer[Any, Any]) – The incremental serializer to use.
converter (AbstractPacketConverterComposite[_SentPacketT, _ReceivedPacketT, 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[_ReceivedPacketT, 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: