pub struct PushDispatcher { /* private fields */ }Expand description
推送分发器
Implementations§
Source§impl PushDispatcher
impl PushDispatcher
Sourcepub async fn push_qot_to_conn(&self, conn_id: u64, proto_id: u32, body: Vec<u8>)
pub async fn push_qot_to_conn(&self, conn_id: u64, proto_id: u32, body: Vec<u8>)
Send one quote first-push to the target physical connection.
Sourcepub async fn push_qot_to_conn_with_route(
&self,
conn_id: u64,
security_key: &str,
sub_type: i32,
rehab_type: i32,
proto_id: u32,
body: Vec<u8>,
)
pub async fn push_qot_to_conn_with_route( &self, conn_id: u64, security_key: &str, sub_type: i32, rehab_type: i32, proto_id: u32, body: Vec<u8>, )
Direct first-push with the ordinary quote route identity required by the shared KLine cursor.
Sourcepub async fn push_qot(
&self,
security_key: &str,
sub_type: i32,
rehab_type: i32,
proto_id: u32,
body: Vec<u8>,
)
pub async fn push_qot( &self, security_key: &str, sub_type: i32, rehab_type: i32, proto_id: u32, body: Vec<u8>, )
Fan out one ordinary quote event without KLine section metadata.
Sourcepub async fn push_qot_with_kline_section(
&self,
security_key: &str,
sub_type: i32,
rehab_type: i32,
proto_id: u32,
body: Vec<u8>,
kline_trade_section: Option<KlineTradeSection>,
)
pub async fn push_qot_with_kline_section( &self, security_key: &str, sub_type: i32, rehab_type: i32, proto_id: u32, body: Vec<u8>, kline_trade_section: Option<KlineTradeSection>, )
Fan out one canonical quote event. kline_trade_section is internal
route metadata used only for C++-compatible native connection filtering.
Source§impl PushDispatcher
impl PushDispatcher
Sourcepub fn new(
connections: Arc<DashMap<u64, ClientConn>>,
subscriptions: Arc<SubscriptionManager>,
) -> Self
pub fn new( connections: Arc<DashMap<u64, ClientConn>>, subscriptions: Arc<SubscriptionManager>, ) -> Self
创建推送分发器。connections 和 subscriptions 由
super::listener::ApiServer 共享;外部 sink / metrics 可通过
Self::with_metrics / Self::with_external_sink 后续注入。
Sourcepub fn with_metrics(self, metrics: Arc<GatewayMetrics>) -> Self
pub fn with_metrics(self, metrics: Arc<GatewayMetrics>) -> Self
设置监控指标引用
Sourcepub fn with_external_sink(self, sink: Arc<dyn ExternalPushSink>) -> Self
pub fn with_external_sink(self, sink: Arc<dyn ExternalPushSink>) -> Self
添加外部推送接收器(可多次调用注册多个)
pub fn with_startup_readiness(self, startup_readiness: StartupReadiness) -> Self
Sourcepub async fn push_to_conn(&self, conn_id: u64, proto_id: u32, body: Vec<u8>)
pub async fn push_to_conn(&self, conn_id: u64, proto_id: u32, body: Vec<u8>)
向指定连接推送(自动处理 AES 加密)
Sourcepub async fn push_qot_to_conn_generation(
&self,
conn_id: u64,
expected_generation: u64,
proto_id: u32,
body: Vec<u8>,
)
pub async fn push_qot_to_conn_generation( &self, conn_id: u64, expected_generation: u64, proto_id: u32, body: Vec<u8>, )
Direct async delivery; generation is checked in the physical tx lookup.
Sourcepub async fn push_notify(&self, proto_id: u32, body: Vec<u8>)
pub async fn push_notify(&self, proto_id: u32, body: Vec<u8>)
向所有订阅了通知的连接广播(每个连接独立 AES 加密)
Sourcepub async fn push_broadcast(&self, proto_id: u32, body: Vec<u8>)
pub async fn push_broadcast(&self, proto_id: u32, body: Vec<u8>)
向所有已连接的客户端广播(到价提醒等,不需要订阅通知) C++ 检查 IsConnSubRecvNotify,对齐使用 InitConnect.recvNotify。
Auto Trait Implementations§
impl !Freeze for PushDispatcher
impl !RefUnwindSafe for PushDispatcher
impl !UnwindSafe for PushDispatcher
impl Send for PushDispatcher
impl Sync for PushDispatcher
impl Unpin for PushDispatcher
impl UnsafeUnpin for PushDispatcher
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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>
Converts
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>
Converts
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