kafka_dae_control.worker_event

Worker event class for the worker thread to action.

Members

BeginEvent

An event signalling a begin.

BlocksUpdateEvent

An event signalling a blocks update.

EndEvent

An event signalling an end.

HardwareUpdate

a dataclass which contains the updated state of the hardware.

HardwareUpdateEvent

An event signalling a hardware update.

SetIPEvent

An event signalling to set the board's communication register to local IP.

TitleUpdateEvent

An event signalling a title update.

UsersUpdateEvent

An event signalling a users update.

WorkerEventWithValue

A worker event with a value field.

process_worker_event

Process a worker event.

class kafka_dae_control.worker_event.BeginEvent(done_event: EventWithValue[None])[source]

Bases: object

An event signalling a begin.

class kafka_dae_control.worker_event.BlocksUpdateEvent(value: T)[source]

Bases: WorkerEventWithValue[list[str]]

An event signalling a blocks update.

class kafka_dae_control.worker_event.EndEvent(done_event: EventWithValue[None])[source]

Bases: object

An event signalling an end.

class kafka_dae_control.worker_event.HardwareUpdate(hw_running: bool)[source]

Bases: object

a dataclass which contains the updated state of the hardware.

class kafka_dae_control.worker_event.HardwareUpdateEvent(value: T)[source]

Bases: WorkerEventWithValue[HardwareUpdate]

An event signalling a hardware update.

class kafka_dae_control.worker_event.SetIPEvent[source]

Bases: object

An event signalling to set the board’s communication register to local IP.

class kafka_dae_control.worker_event.TitleUpdateEvent(value: T)[source]

Bases: WorkerEventWithValue[str]

An event signalling a title update.

class kafka_dae_control.worker_event.UsersUpdateEvent(value: T)[source]

Bases: WorkerEventWithValue[str]

An event signalling a users update.

class kafka_dae_control.worker_event.WorkerEventWithValue(value: T)[source]

Bases: ABC, Generic

A worker event with a value field.

kafka_dae_control.worker_event.process_worker_event(worker_event: SetIPEvent | BeginEvent | EndEvent | TitleUpdateEvent | UsersUpdateEvent | HardwareUpdateEvent | BlocksUpdateEvent, config: ControlConfig, data: Data, producer: Producer, sock: socket, sock_lock: RLock) None[source]

Process a worker event.

This is the only part of the program which can mutate the data class. It is responsible for filtering the type of worker event and acting on it accordingly.

Parameters:
  • worker_event – the worker event to process

  • config – the program’s configuration options

  • data – the data class containing the program’s state

  • producer – the Kafka producer

  • sock – the socket instance

  • sock_lock – the lock to use when using the socket instance