Event_router.Make
module Engine : Intf.Engine.S
type ('a, 'b) handler_func =
Engine.Network.Node.t ->
'a ->
[ `Stop of 'b | `Continue ] Async_kernel.Deferred.t
val create :
logger:Logger.t ->
event_reader:
(Engine.Network.Node.t * Event_type.event) Async_kernel.Pipe.Reader.t ->
t
val on :
t ->
'a Event_type.t ->
f:( 'a, 'b ) handler_func ->
'b event_subscription
val cancel : t -> 'a event_subscription -> 'a -> unit
val await : 'a event_subscription -> 'a Async_kernel.Deferred.t
val await_with_timeout :
t ->
'a event_subscription ->
timeout_duration:Core_kernel.Time.Span.t ->
timeout_cancellation:'a ->
'a Async_kernel.Deferred.t