Network

module: streamtasks.net

The streamtasks network is a host independent network that is used to communicate with receivers/services.

The network consists of connections. A connection is made up of two links.

Connection

The messages sent over links are distributed by switches. A Client can be used to simplify the usage of links.

Switch

Default link used when creating new internal connections.

A simple link based on message queues.

A link used to remap specified topic ids using a map of ids. This can only be used by wrapping an existing link.

module: streamtasks.connection

A link sending data over a raw connection, like a TCP connection.

See Connection for more information.

Messages

Priced Id

id: int
cost: int

Raw Data

Raw data can be created from bytes of serialized message pack data (bytes/bytearray/memoryview) or by providing a message pack serializable python object, like a dict.

The Raw data is used to serialize and deserialize the inner data on demand.

The deserialized data can be accesses with RawData(<some data>).data. The data can be serialized with RawData(<some data>).serialize().

Serialization is only done if a link requires the data to be serialized.


  • TopicDataMessage - data to be distributed on a topic
    topic: int
    data: 'RawData'
    
  • TopicControlMessage - sets the state of a topic
    topic: int
    paused: bool
    
  • AddressedMessage - sends data to an address on a port
    address: int
    port: int
    data: 'RawData'
    
  • AddressesChangedMessage - a link sends this message to change what addresses can be reached from this link.
    add: set[PricedId]
    remove: set[int]
    
  • InTopicsChangedMessage - a links sends this message to set what topic messages should be sent to it.
    add: set[int]
    remove: set[int]
    
  • OutTopicsChangedMessage - a links sends this message to set what topics it provides. The topics can be requested if the other party sends a InTopicsChangedMessage.
    add: set[PricedId]
    remove: set[int]
    

Client

See Client for more information.


Table of contents