pyrtma.manager.MessageManager

class MessageManager(ip_address='', port=7111, timecode=False, log_level=20, debug=False, send_msg_timing=True, send_active_clients=True)[source]

Bases: ClientLike

MessageManager class

RTMA Message Manager server implemented in python.

MessageManager class

RTMA Message Manager server implemented in python.

Parameters:
  • ip_address (str) – server IP address. Defaults to “”.

  • port (int) – server port. Defaults to 7111.

  • timecode (bool, optional) – Flag to use message header with timecode values. Defaults to False.

  • log_level (int, optional) – logging level, defaults to logging.INFO.

  • debug (bool, optional) – Flag for debug mode. Defaults to False.

  • send_msg_timing (bool, optional) – Flag to send TIMING_MSG. Defaults to True.

  • send_active_clients (bool, optional) – Flag to send ACTIVE_CLIENTS. Defaults to True.

Methods

add_subscription

Add message subscription

assign_module_id

Assign module ID dynamically to connecting module

close

Close manager server

connect_module

Connect module

decode_core_message

decode_header

disconnect_module

Disconnect module

forward_message

Forward a message from other modules

generate_uid

pause_subscription

Pause message subscription

process_core_message

Process incoming core message

process_message

Process incoming message

read_message

Read an incoming message

register_module_ready

Handle MODULE_READY message and register PID

remove_module

Remove connected module

remove_subscription

Remove message subscription

resume_subscription

Resume message subscription

run

Start the message manager server

send_ack

Send ACKNOWLEDGE signal header

send_active_clients

Send ACTIVE_CLIENTS

send_client_close

Send CLIENT_CLOSED

send_client_info

Send CLIENT_INFO

send_failed_message

Send FAILED_MESSAGE

send_message

Send a message originating from MessageManager module

send_timing_message

Send TIMING_MESSAGE

send_to_loggers

Forward message to registered logger modules

set_module_name

Set a module name

Attributes

INFO_INTERVAL

connected

logger

add_subscription(src_module, msg)[source]

Add message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming SUBSCRIBE message

assign_module_id()[source]

Assign module ID dynamically to connecting module

Raises:

RuntimeError – Exceeded maximum number of allowed dynamic modules

Returns:

module ID

Return type:

int

close()[source]

Close manager server

connect_module(module, msg)[source]

Connect module

Parameters:
  • module (Module) – Connecting module

  • msg (Message) – Incoming connect message

Returns:

success code

Return type:

bool

disconnect_module(src_module)[source]

Disconnect module

Parameters:

src_module (Module) – Module object to disconnect

forward_message(src_module, header, data)[source]

Forward a message from other modules

The given message will be forwarded to:

  • all subscribed logger modules

  • if the message has a destination address, and it is subscribed to by that destination it will be forwarded only there

  • if the message has no destination address, it will be forwarded to all subscribed modules or those subscribed to ALL_MESSAGE_TYPES

Parameters:
pause_subscription(src_module, msg)[source]

Pause message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming PAUSE_SUBSCRIPTION message

process_core_message(src_module, header)[source]

Process incoming core message

Parameters:
  • src_module (Module) – Message source module

  • header (MessageHeader) – Message header of the incoming message

process_message(src_module, header)[source]

Process incoming message

Parameters:
  • src_module (Module) – Message source module

  • header (MessageHeader) – Message header of the incoming message

read_message(sock)[source]

Read an incoming message

Parameters:

sock (socket) – socket to read from

Returns:

message header of incoming message

Return type:

MessageHeader | None

register_module_ready(src_module, msg)[source]

Handle MODULE_READY message and register PID

Parameters:
  • src_module (Module) – Module that is ready

  • msg (Message) – Incoming MODULE_READY message

remove_module(module)[source]

Remove connected module

Parameters:

module (Module) – Module object to remove

remove_subscription(src_module, msg)[source]

Remove message subscription

Parameters:
  • src_module (Module) – Unsubscribing module

  • msg (Message) – incoming UNSUBSCRIBE message

resume_subscription(src_module, msg)[source]

Resume message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming RESUME_SUBSCRIPTION message

run()[source]

Start the message manager server

send_ack(src_module)[source]

Send ACKNOWLEDGE signal header

Parameters:

src_module (Module) – Module to send ACK to

send_active_clients()[source]

Send ACTIVE_CLIENTS

send_client_close(module)[source]

Send CLIENT_CLOSED

Parameters:

module (Module) – Closed module object

send_client_info(module)[source]

Send CLIENT_INFO

Parameters:

module (Module) – Module object to send info for

send_failed_message(dest_module, header, time_of_failure)[source]

Send FAILED_MESSAGE

Parameters:
  • dest_module (Module) – Intended destination

  • header (MessageHeader) – Header of failed message

  • time_of_failure (float) – Time of send failure

send_message(msg_data, dest_mod_id=0, dest_host_id=0, timeout=0)[source]

Send a message originating from MessageManager module

Parameters:
  • msg_data (MessageData) – Object containing the message to send

  • dest_mod_id (int) – Specific module ID to send to. Defaults to 0 (broadcast).

  • dest_host_id (int) – Specific host ID to send to. Defaults to 0 (broadcast).

  • timeout (float) – Reserved. Defaults to 0.

send_timing_message()[source]

Send TIMING_MESSAGE

send_to_loggers(header, payload)[source]

Forward message to registered logger modules

Parameters:
set_module_name(src_module, msg)[source]

Set a module name

Parameters:
  • src_module (Module) – Module that sent CLIENT_SET_NAME

  • msg (Message) – Incoming CLIENT_SET_NAME message