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

A Client will call this method on each registered handler when a server description changes.

A Client will call this method on each registered handler when a server is initialized.

A Client will call this method on each registered handler when a server is closed.

A Client will call this method on each registered handler when its topology description changes.

A Client will call this method on each registered handler when its topology is initialized.

A Client will call this method on each registered handler when its topology closes. Note that this method will not be called until the Client is dropped.

A Client will call this method on each registered handler when a server heartbeat begins.

A Client will call this method on each registered handler when a server heartbeat succeeds.

A Client will call this method on each registered handler when a server heartbeat fails.

Implementors