pub struct OcmState {
pub fill_tracker: FillTracker,
pub terminal_orders: AHashSet<BetId>,
pub replaced_venue_order_ids: AHashSet<BetId>,
/* private fields */
}Expand description
Shared mutable state for the OCM stream handler.
Accessed by both the TCP reader closure and the execution client methods
(submit, modify, connect/disconnect). All access goes through Arc<Mutex<>>.
Terminal retention owns order correlation, per-Bet fill and reduction state, and replacement history. The first REST, OCM, or reconciliation observation with active quantity at least the requested quantity and below the original confirms a pending reduction; later observations are no-ops.
Fields§
§fill_tracker: FillTrackerTracks cumulative per-bet fill and void state for deduplication and reconciliation.
terminal_orders: AHashSet<BetId>Bet IDs that have received a terminal event (cancel, lapse, fill-complete).
replaced_venue_order_ids: AHashSet<BetId>Old bet IDs from replace operations, to suppress late stream updates.
Implementations§
Source§impl OcmState
impl OcmState
Sourcepub fn register_customer_order_ref(&mut self, client_order_id: ClientOrderId)
pub fn register_customer_order_ref(&mut self, client_order_id: ClientOrderId)
Registers a customer_order_ref mapping for a new order.
Sourcepub fn register_customer_order_ref_with_legacy(
&mut self,
client_order_id: ClientOrderId,
)
pub fn register_customer_order_ref_with_legacy( &mut self, client_order_id: ClientOrderId, )
Registers both current and legacy customer_order_ref truncations.
Sourcepub fn register_order_identity(
&mut self,
client_order_id: ClientOrderId,
strategy_id: StrategyId,
)
pub fn register_order_identity( &mut self, client_order_id: ClientOrderId, strategy_id: StrategyId, )
Records the submitting strategy for a tracked order.
Sourcepub fn order_strategy_id(
&self,
client_order_id: &ClientOrderId,
) -> Option<StrategyId>
pub fn order_strategy_id( &self, client_order_id: &ClientOrderId, ) -> Option<StrategyId>
Returns the submitting strategy for a tracked order, if known.
Sourcepub fn mark_accepted(&mut self, client_order_id: ClientOrderId) -> bool
pub fn mark_accepted(&mut self, client_order_id: ClientOrderId) -> bool
Records that acceptance has been emitted for a tracked order.
Returns true when this call newly marks the order accepted (the caller
should emit OrderAccepted), or false when acceptance was already emitted.
Sourcepub fn remove_customer_order_refs(&mut self, client_order_id: &ClientOrderId)
pub fn remove_customer_order_refs(&mut self, client_order_id: &ClientOrderId)
Removes customer_order_ref mappings for a client_order_id.
Sourcepub fn resolve_client_order_id(
&self,
rfo: Option<&str>,
) -> Option<ClientOrderId>
pub fn resolve_client_order_id( &self, rfo: Option<&str>, ) -> Option<ClientOrderId>
Resolves a client_order_id from the unmatched order’s rfo field.
Sourcepub fn should_suppress_cancel(
&self,
client_order_id: &ClientOrderId,
bet_id: &str,
) -> bool
pub fn should_suppress_cancel( &self, client_order_id: &ClientOrderId, bet_id: &str, ) -> bool
Returns true if a cancel/lapse for this bet should be suppressed
because a replace operation is pending or the bet was already replaced.
Sourcepub fn mark_terminal_order(&mut self, bet_id: String)
pub fn mark_terminal_order(&mut self, bet_id: String)
Records an external terminal bet and bounds its stream and REST dedup state.
Sourcepub fn sync_from_orders(&mut self, orders: &[OrderSyncEntry])
pub fn sync_from_orders(&mut self, orders: &[OrderSyncEntry])
Anchors the fill tracker against cached orders so the post-reconnect image neither treats cumulative size as a new fill nor re-emits a fill that was published via another channel.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OcmState
impl RefUnwindSafe for OcmState
impl Send for OcmState
impl Sync for OcmState
impl Unpin for OcmState
impl UnsafeUnpin for OcmState
impl UnwindSafe for OcmState
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more