NetworkDMAPayload#

class FIREQ_SERVER.network.protocol.NetworkDMAPayload(source: str, shots: int, dtype: str, data: bytes)[source]#

Bases: DMAPayload

Object that holds the payload for a DMA transfer and that can be transferred through the network.

It can be sent over a socket with the to_buffers method, using sock.sendmsg().

to_buffers() → tuple[bytes, bytes, bytes][source]#

Return a sequence of bytes-like objects ready for sendmsg().

The layout:

buf[0] : 4 bytes header size (big-endian unsigned int) buf[1-N] : msgpack-packed header buf[N+1: M] : raw binary payload

The msgpack header contains a “tsize” key that specifies the size of the trailing binary payload.