Order Expiry Store
Time-limited orders are tracked through StockMarketABM.OrderExpiryStore. It pairs a priority queue keyed by expiry time with a metadata table so the market engine can quickly register, invalidate, or trigger expirations.
StockMarketABM.OrderExpiryStore.ExpiringOrderState — TypeExpiringOrderStateMetadata tracked for orders that expire at a predetermined timestamp. Captures the owning agent, instrument, and expiry time.
StockMarketABM.OrderExpiryStore.ExpiringOrderStore — TypeExpiringOrderStoreContainer that tracks expirable orders using a priority queue keyed by expiry time and a lookup table for metadata.
StockMarketABM.OrderExpiryStore.ExpiringOrderStore — MethodExpiringOrderStore()Construct an empty expiry store with fresh priority queue and metadata table.
StockMarketABM.OrderExpiryStore.get_state — Methodget_state(store, order_id) -> Union{ExpiringOrderState,Nothing}Fetch the stored metadata for order_id, or nothing when it is not tracked.
StockMarketABM.OrderExpiryStore.has_expirable — Methodhas_expirable(store, order_id) -> BoolReturn true if the given order is currently tracked for expiry.
StockMarketABM.OrderExpiryStore.invalidate_order! — Methodinvalidate_order!(store, order_id) -> Union{ExpiringOrderState,Nothing}Remove an order from the expiry store, returning its previous state when present.
StockMarketABM.OrderExpiryStore.maybe_complete! — Methodmaybe_complete!(store, order_id, remaining)Invalidate the expirable order when remaining quantity drops to zero after a fill. Returns the removed state when applicable.
StockMarketABM.OrderExpiryStore.register_expirable_order! — Methodregister_expirable_order!(store, order_id, agent, instrument, expire_at)Register or update an order that should expire at expire_at. Returns the tracked state after insertion.
StockMarketABM.OrderExpiryStore.take_due_expiry! — Methodtake_due_expiry!(store, now) -> Union{Tuple{OrderId,ExpiringOrderState},Nothing}Pop the earliest order whose expiry time is ≤ now. Returns a pair of the order identifier and its state, or nothing when no orders are due.