@@ -31,11 +31,8 @@ pub(crate) trait MessageBus: Send + Sync {
31
31
fn send_durable_message ( & mut self , request_id : i32 , packet : & RequestMessage ) -> Result < BusSubscription , Error > ;
32
32
fn send_order_message ( & mut self , request_id : i32 , packet : & RequestMessage ) -> Result < BusSubscription , Error > ;
33
33
34
- fn send_shared_message ( & mut self , message_id : OutgoingMessages , packet : & RequestMessage ) -> Result < BusSubscription , Error > {
35
- Ok ( BusSubscription :: new ( todo ! ( ) , todo ! ( ) , todo ! ( ) , todo ! ( ) , todo ! ( ) ) )
36
- }
34
+ fn send_shared_message ( & mut self , message_id : OutgoingMessages , packet : & RequestMessage ) -> Result < BusSubscription , Error > ;
37
35
38
- fn request_next_order_id ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > ;
39
36
fn request_open_orders ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > ;
40
37
fn request_market_rule ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > ;
41
38
fn request_positions ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > ;
@@ -70,6 +67,20 @@ impl SharedChannels {
70
67
71
68
// Register request/response pairs.
72
69
instance. register ( OutgoingMessages :: RequestIds , & [ IncomingMessages :: NextValidId ] ) ;
70
+ instance. register ( OutgoingMessages :: RequestFamilyCodes , & [ IncomingMessages :: FamilyCodes ] ) ;
71
+ instance. register ( OutgoingMessages :: RequestMarketRule , & [ IncomingMessages :: MarketRule ] ) ;
72
+ instance. register (
73
+ OutgoingMessages :: RequestPositions ,
74
+ & [ IncomingMessages :: Position , IncomingMessages :: PositionEnd ] ,
75
+ ) ;
76
+ instance. register (
77
+ OutgoingMessages :: RequestPositionsMulti ,
78
+ & [ IncomingMessages :: PositionMulti , IncomingMessages :: PositionMultiEnd ] ,
79
+ ) ;
80
+ instance. register (
81
+ OutgoingMessages :: RequestOpenOrders ,
82
+ & [ IncomingMessages :: OpenOrder , IncomingMessages :: OpenOrderEnd ] ,
83
+ ) ;
73
84
74
85
instance
75
86
}
@@ -88,15 +99,20 @@ impl SharedChannels {
88
99
}
89
100
90
101
pub fn get_receiver ( & self , message_id : OutgoingMessages ) -> Arc < Receiver < ResponseMessage > > {
91
- let receiver = self . receivers . get ( & message_id) . expect ( "unsupport type" ) ;
102
+ let receiver = self
103
+ . receivers
104
+ . get ( & message_id)
105
+ . expect ( & format ! ( "unsupported request message {:?}" , message_id) ) ;
92
106
Arc :: clone ( receiver)
93
107
}
94
108
95
- pub fn get_sender ( & self , message_id : OutgoingMessages ) -> Arc < Receiver < ResponseMessage > > {
96
- let receiver = self . receivers . get ( & message_id) . expect ( "unsupport type" ) ;
97
- Arc :: clone ( receiver)
109
+ pub fn get_sender ( & self , message_id : IncomingMessages ) -> Arc < Sender < ResponseMessage > > {
110
+ let sender = self
111
+ . senders
112
+ . get ( & message_id)
113
+ . expect ( & format ! ( "unsupported response message {:?}" , message_id) ) ;
114
+ Arc :: clone ( sender)
98
115
}
99
-
100
116
}
101
117
102
118
#[ derive( Debug ) ]
@@ -254,16 +270,6 @@ impl MessageBus for TcpMessageBus {
254
270
Ok ( subscription)
255
271
}
256
272
257
- fn request_next_order_id ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > {
258
- self . write_message ( message) ?;
259
-
260
- let subscription = SubscriptionBuilder :: new ( )
261
- . shared_receiver ( Arc :: clone ( & self . globals . order_ids_out ) )
262
- . build ( ) ;
263
-
264
- Ok ( subscription)
265
- }
266
-
267
273
fn request_open_orders ( & mut self , message : & RequestMessage ) -> Result < BusSubscription , Error > {
268
274
self . write_message ( message) ?;
269
275
0 commit comments