@@ -173,65 +173,124 @@ impl ConnectionHandler for BitswapHandler {
173
173
self . listen_protocol . clone ( )
174
174
}
175
175
176
- fn inject_fully_negotiated_inbound (
177
- & mut self ,
178
- substream : <Self :: InboundProtocol as InboundUpgrade < NegotiatedSubstream > >:: Output ,
179
- _info : Self :: InboundOpenInfo ,
180
- ) {
181
- let protocol_id = substream. codec ( ) . protocol ;
182
- if self . protocol . is_none ( ) {
183
- self . protocol = Some ( protocol_id) ;
176
+ fn map_in_event < TNewIn , TMap > (
177
+ self ,
178
+ map : TMap ,
179
+ ) -> libp2p:: swarm:: handler:: MapInEvent < Self , TNewIn , TMap >
180
+ where
181
+ Self : Sized ,
182
+ TMap : Fn ( & TNewIn ) -> Option < & Self :: InEvent > ,
183
+ {
184
+ libp2p:: swarm:: handler:: MapInEvent {
185
+ inner : self ,
186
+ map,
187
+ marker : None ,
184
188
}
185
-
186
- trace ! ( "New inbound substream request: {:?}" , protocol_id) ;
187
- self . inbound_substreams
188
- . push ( Box :: pin ( inbound_substream ( substream) ) ) ;
189
189
}
190
190
191
- fn inject_fully_negotiated_outbound (
192
- & mut self ,
193
- substream : <Self :: OutboundProtocol as OutboundUpgrade < NegotiatedSubstream > >:: Output ,
194
- message : Self :: OutboundOpenInfo ,
195
- ) {
196
- let protocol_id = substream. codec ( ) . protocol ;
197
- if self . protocol . is_none ( ) {
198
- self . protocol = Some ( protocol_id) ;
199
- }
200
-
201
- trace ! ( "New outbound substream: {:?}" , protocol_id) ;
202
- self . outbound_substreams
203
- . push ( Box :: pin ( outbound_substream ( substream, message) ) ) ;
191
+ fn map_out_event < TMap , TNewOut > (
192
+ self ,
193
+ map : TMap ,
194
+ ) -> libp2p:: swarm:: handler:: MapOutEvent < Self , TMap >
195
+ where
196
+ Self : Sized ,
197
+ TMap : FnMut ( Self :: OutEvent ) -> TNewOut ,
198
+ {
204
199
}
205
200
206
- fn inject_event ( & mut self , message : BitswapHandlerIn ) {
207
- match message {
208
- BitswapHandlerIn :: Message ( m, response) => {
209
- self . send_queue . push_back ( ( m, response) ) ;
201
+ fn on_behaviour_event ( & mut self , _event : Self :: InEvent ) { }
210
202
211
- // sending a message, reset keepalive
212
- self . keep_alive = KeepAlive :: Until ( Instant :: now ( ) + self . idle_timeout ) ;
213
- }
214
- BitswapHandlerIn :: Protect => {
215
- self . keep_alive = KeepAlive :: Yes ;
216
- }
217
- BitswapHandlerIn :: Unprotect => {
218
- self . keep_alive =
219
- KeepAlive :: Until ( Instant :: now ( ) + Duration :: from_secs ( INITIAL_KEEP_ALIVE ) ) ;
220
- }
221
- }
222
- }
223
-
224
- fn inject_dial_upgrade_error (
203
+ fn on_connection_event (
225
204
& mut self ,
226
- _: Self :: OutboundOpenInfo ,
227
- e : ConnectionHandlerUpgrErr <
228
- <Self :: OutboundProtocol as OutboundUpgrade < NegotiatedSubstream > >:: Error ,
205
+ event : libp2p:: swarm:: handler:: ConnectionEvent <
206
+ Self :: InboundProtocol ,
207
+ Self :: OutboundProtocol ,
208
+ Self :: InboundOpenInfo ,
209
+ Self :: OutboundOpenInfo ,
229
210
> ,
230
211
) {
231
- warn ! ( "Dial upgrade error {:?}" , e) ;
232
- self . upgrade_errors . push_back ( e) ;
233
212
}
234
213
214
+ fn select < TProto2 > (
215
+ self ,
216
+ other : TProto2 ,
217
+ ) -> libp2p:: swarm:: ConnectionHandlerSelect < Self , TProto2 >
218
+ where
219
+ Self : Sized ,
220
+ {
221
+ return self ;
222
+ }
223
+
224
+ // fn map_in_event<TNewIn, TMap>(
225
+ // self,
226
+ // map: TMap,
227
+ // ) -> libp2p::swarm::handler::MapInEvent<Self, TNewIn, TMap>
228
+ // where
229
+ // Self: Sized,
230
+ // TMap: Fn(&TNewIn) -> Option<&Self::InEvent>,
231
+ // {
232
+ // libp2p::swarm::handler::MapInEvent::new(self, map)
233
+ // }
234
+
235
+ // fn inject_fully_negotiated_inbound(
236
+ // &mut self,
237
+ // substream: <Self::InboundProtocol as InboundUpgrade<NegotiatedSubstream>>::Output,
238
+ // _info: Self::InboundOpenInfo,
239
+ // ) {
240
+ // let protocol_id = substream.codec().protocol;
241
+ // if self.protocol.is_none() {
242
+ // self.protocol = Some(protocol_id);
243
+ // }
244
+
245
+ // trace!("New inbound substream request: {:?}", protocol_id);
246
+ // self.inbound_substreams
247
+ // .push(Box::pin(inbound_substream(substream)));
248
+ // }
249
+
250
+ // fn inject_fully_negotiated_outbound(
251
+ // &mut self,
252
+ // substream: <Self::OutboundProtocol as OutboundUpgrade<NegotiatedSubstream>>::Output,
253
+ // message: Self::OutboundOpenInfo,
254
+ // ) {
255
+ // let protocol_id = substream.codec().protocol;
256
+ // if self.protocol.is_none() {
257
+ // self.protocol = Some(protocol_id);
258
+ // }
259
+
260
+ // trace!("New outbound substream: {:?}", protocol_id);
261
+ // self.outbound_substreams
262
+ // .push(Box::pin(outbound_substream(substream, message)));
263
+ // }
264
+
265
+ // fn inject_event(&mut self, message: BitswapHandlerIn) {
266
+ // match message {
267
+ // BitswapHandlerIn::Message(m, response) => {
268
+ // self.send_queue.push_back((m, response));
269
+
270
+ // // sending a message, reset keepalive
271
+ // self.keep_alive = KeepAlive::Until(Instant::now() + self.idle_timeout);
272
+ // }
273
+ // BitswapHandlerIn::Protect => {
274
+ // self.keep_alive = KeepAlive::Yes;
275
+ // }
276
+ // BitswapHandlerIn::Unprotect => {
277
+ // self.keep_alive =
278
+ // KeepAlive::Until(Instant::now() + Duration::from_secs(INITIAL_KEEP_ALIVE));
279
+ // }
280
+ // }
281
+ // }
282
+
283
+ // fn inject_dial_upgrade_error(
284
+ // &mut self,
285
+ // _: Self::OutboundOpenInfo,
286
+ // e: ConnectionHandlerUpgrErr<
287
+ // <Self::OutboundProtocol as OutboundUpgrade<NegotiatedSubstream>>::Error,
288
+ // >,
289
+ // ) {
290
+ // warn!("Dial upgrade error {:?}", e);
291
+ // self.upgrade_errors.push_back(e);
292
+ // }
293
+
235
294
fn connection_keep_alive ( & self ) -> KeepAlive {
236
295
self . keep_alive
237
296
}
0 commit comments