kosmos.dqc_scheduling.event_queue

Classes

class EventQueue[source]

Event queue for scheduling protocols within the simulation.

queue

Priority queue of events ready to execute, ordered by time.

Type:

list[Event]

current_time

Global clock for simulation.

Type:

int

waiting_events

Events waiting for their dependencies to be satisfied before being added to the execution queue.

Type:

dict[EventId, Event]

event_results

Results from the executed protocols.

Type:

dict[EventId, ProtocolResult]

Initialize the event queue.


Methods

add_event_with_dependencies(protocol: kosmos.protocols.protocol.Protocol, delay: int = 0, dependencies: list[kosmos.dqc_scheduling.event.EventId] | None = None, event_id: kosmos.dqc_scheduling.event.EventId | None = None) kosmos.dqc_scheduling.event.EventId | None[source]

Add an event with dependencies to the system.

Parameters:
  • protocol (Protocol) – Protocol to execute.

  • delay (int) – Time delay from current time. Defaults to 0.

  • dependencies (list[str] | None) – List of event IDs this event depends on. Defaults to None.

  • event_id (EventId | None) – Optional explicit ID for this event. Defaults to None.

Returns:

ID of the added event.

Return type:

EventId or None

run() None[source]

Run all events in the queue until it’s empty.