Trait mongodb::event::sdam::SdamEventHandler [−][src]
pub trait SdamEventHandler: Send + Sync {
fn handle_server_description_changed_event(
&self,
_event: ServerDescriptionChangedEvent
) { ... }
fn handle_server_opening_event(&self, _event: ServerOpeningEvent) { ... }
fn handle_server_closed_event(&self, _event: ServerClosedEvent) { ... }
fn handle_topology_description_changed_event(
&self,
_event: TopologyDescriptionChangedEvent
) { ... }
fn handle_topology_opening_event(&self, _event: TopologyOpeningEvent) { ... }
fn handle_topology_closed_event(&self, _event: TopologyClosedEvent) { ... }
fn handle_server_heartbeat_started_event(
&self,
_event: ServerHeartbeatStartedEvent
) { ... }
fn handle_server_heartbeat_succeeded_event(
&self,
_event: ServerHeartbeatSucceededEvent
) { ... }
fn handle_server_heartbeat_failed_event(
&self,
_event: ServerHeartbeatFailedEvent
) { ... }
}
Expand description
Applications can implement this trait to specify custom logic to run on each SDAM event sent by the driver.
struct FailedHeartbeatLogger;
impl SdamEventHandler for FailedHeartbeatLogger {
fn handle_server_heartbeat_failed_event(&self, event: ServerHeartbeatFailedEvent) {
eprintln!("Failed server heartbeat: {:?}", event);
}
}
let handler: Arc<dyn SdamEventHandler> = Arc::new(FailedHeartbeatLogger);
let options = ClientOptions::builder()
.sdam_event_handler(handler)
.build();
let client = Client::with_options(options)?;
// Do things with the client, and failed server heartbeats will be logged to stderr.
Provided methods
fn handle_server_description_changed_event(
&self,
_event: ServerDescriptionChangedEvent
)
fn handle_server_description_changed_event(
&self,
_event: ServerDescriptionChangedEvent
)
A Client
will call this method on each registered handler when
a server description changes.
fn handle_server_opening_event(&self, _event: ServerOpeningEvent)
fn handle_server_opening_event(&self, _event: ServerOpeningEvent)
A Client
will call this method on each registered handler when
a server is initialized.
fn handle_server_closed_event(&self, _event: ServerClosedEvent)
fn handle_server_closed_event(&self, _event: ServerClosedEvent)
A Client
will call this method on each registered handler when
a server is closed.
fn handle_topology_description_changed_event(
&self,
_event: TopologyDescriptionChangedEvent
)
fn handle_topology_description_changed_event(
&self,
_event: TopologyDescriptionChangedEvent
)
A Client
will call this method on each registered handler when
its topology description changes.
fn handle_topology_opening_event(&self, _event: TopologyOpeningEvent)
fn handle_topology_opening_event(&self, _event: TopologyOpeningEvent)
A Client
will call this method on each registered handler when
its topology is initialized.
fn handle_topology_closed_event(&self, _event: TopologyClosedEvent)
fn handle_topology_closed_event(&self, _event: TopologyClosedEvent)
fn handle_server_heartbeat_started_event(
&self,
_event: ServerHeartbeatStartedEvent
)
fn handle_server_heartbeat_started_event(
&self,
_event: ServerHeartbeatStartedEvent
)
A Client
will call this method on each registered handler when
a server heartbeat begins.
fn handle_server_heartbeat_succeeded_event(
&self,
_event: ServerHeartbeatSucceededEvent
)
fn handle_server_heartbeat_succeeded_event(
&self,
_event: ServerHeartbeatSucceededEvent
)
A Client
will call this method on each registered handler when
a server heartbeat succeeds.
fn handle_server_heartbeat_failed_event(
&self,
_event: ServerHeartbeatFailedEvent
)
fn handle_server_heartbeat_failed_event(
&self,
_event: ServerHeartbeatFailedEvent
)
A Client
will call this method on each registered handler when
a server heartbeat fails.