Skip to content

Protocol

major edited this page Jul 25, 2019 · 2 revisions

This page explains the Darwin packet object, as well as the data structures for low-level networking code.

DarwinPacket

A class used to create a Darwin packet.

Attributes

  • _fields_ (list): a list containing the different tuples used to create a C-like structure to be able to talk to Darwin
  • DARWIN_FILTER_CODE_NO (int): the default Darwin filter code, which basically means "no filter"
  • DEFAULT_CERTITUDE_LIST_SIZE (int): the default certitude list size, which is 1, to allow FAMs (see flexible array members on C99) for both C and C++ code
  • DEFAULT_MAX_CERTITUDE_SIZE (int): the maximum number of certitudes that can be stored in the darwinprotocol.DarwinPacket object
  • RESPONSE_TYPE (dict): a dict used to associate packet type Python strings with their respective C enumerations
  • PACKET_TYPE (dict): a dict used to associate packet type Python strings with their respective C enumerations

Methods

__init__

__init__(self,
         bytes_descr=None,
         packet_type="other",
         response_type="no",
         filter_code=DARWIN_FILTER_CODE_NO,
         certitude_list=None,
         certitude_size=0,
         body_size=0, )

Create a Darwin packet instance.

Parameters

  • bytes_descr (bytes): if provided, the Darwin packet will be reconstructed with the bytes given. Any other argument will be ignored
  • packet_type (str): the packet type to be sent. "darwin" for any packet coming from a Darwin filter, "other" for everything else
  • response_type (str): the response type which tells what Darwin is expected to do. "no" to not answer anything, "back" to answer back to us, "darwin" to send the answer to the next filter, and "both" to apply both the "back" and "darwin" response types
  • filter_code (int): the filter code to be provided
  • body_size (int): the size of the body sent to Darwin
  • event_id (str): a string that represents an UUID, associated with a Darwin call. Useful with asynchronous calls, to bind the results
  • certitude_size (int): the number of certitude values returned. Default is 0
  • certitude_list (list): the Darwin certitude list. Default is []. A certitude has to be superior or equal to 0. If an error occurs, the certitude will be strictly superior to 100
  • max_certitude_size (int): the maximum number of certitudes that can be stored in the darwinprotocol.DarwinPacket object. Default is darwinprotocol.DarwinPacket.DEFAULT_MAX_CERTITUDE_SIZE
  • verbose (bool): whether to print debug info or not. Default is False

_parse_bytes

_parse_bytes(self, bytes_descr)

Used internally when creating a Darwin packet from bytes.

Parameters

  • bytes_descr (bytes): the bytes which will reconstruct the Darwin packet

get_python_descr

get_python_descr(self)

Return the header converted to a Python dict object.

Returns

dict: the header content converted to a Python dict object.

Clone this wiki locally