"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerHeartbeatFailedEvent = exports.ServerHeartbeatSucceededEvent = exports.ServerHeartbeatStartedEvent = exports.TopologyClosedEvent = exports.TopologyOpeningEvent = exports.TopologyDescriptionChangedEvent = exports.ServerClosedEvent = exports.ServerOpeningEvent = exports.ServerDescriptionChangedEvent = void 0;
/**
* Emitted when server description changes, but does NOT include changes to the RTT.
* @public
* @category Event
*/
class ServerDescriptionChangedEvent {
/** @internal */
constructor(topologyId, address, previousDescription, newDescription) {
this.topologyId = topologyId;
this.address = address;
this.previousDescription = previousDescription;
this.newDescription = newDescription;
}
}
exports.ServerDescriptionChangedEvent = ServerDescriptionChangedEvent;
/**
* Emitted when server is initialized.
* @public
* @category Event
*/
class ServerOpeningEvent {
/** @internal */
constructor(topologyId, address) {
this.topologyId = topologyId;
this.address = address;
}
}
exports.ServerOpeningEvent = ServerOpeningEvent;
/**
* Emitted when server is closed.
* @public
* @category Event
*/
class ServerClosedEvent {
/** @internal */
constructor(topologyId, address) {
this.topologyId = topologyId;
this.address = address;
}
}
exports.ServerClosedEvent = ServerClosedEvent;
/**
* Emitted when topology description changes.
* @public
* @category Event
*/
class TopologyDescriptionChangedEvent {
/** @internal */
constructor(topologyId, previousDescription, newDescription) {
this.topologyId = topologyId;
this.previousDescription = previousDescription;
this.newDescription = newDescription;
}
}
exports.TopologyDescriptionChangedEvent = TopologyDescriptionChangedEvent;
/**
* Emitted when topology is initialized.
* @public
* @category Event
*/
class TopologyOpeningEvent {
/** @internal */
constructor(topologyId) {
this.topologyId = topologyId;
}
}
exports.TopologyOpeningEvent = TopologyOpeningEvent;
/**
* Emitted when topology is closed.
* @public
* @category Event
*/
class TopologyClosedEvent {
/** @internal */
constructor(topologyId) {
this.topologyId = topologyId;
}
}
exports.TopologyClosedEvent = TopologyClosedEvent;
/**
* Emitted when the server monitor’s hello command is started - immediately before
* the hello command is serialized into raw BSON and written to the socket.
*
* @public
* @category Event
*/
class ServerHeartbeatStartedEvent {
/** @internal */
constructor(connectionId) {
this.connectionId = connectionId;
}
}
exports.ServerHeartbeatStartedEvent = ServerHeartbeatStartedEvent;
/**
* Emitted when the server monitor’s hello succeeds.
* @public
* @category Event
*/
class ServerHeartbeatSucceededEvent {
/** @internal */
constructor(connectionId, duration, reply) {
this.connectionId = connectionId;
this.duration = duration;
this.reply = reply !== null && reply !== void 0 ? reply : {};
}
}
exports.ServerHeartbeatSucceededEvent = ServerHeartbeatSucceededEvent;
/**
* Emitted when the server monitor’s hello fails, either with an “ok: 0” or a socket exception.
* @public
* @category Event
*/
class ServerHeartbeatFailedEvent {
/** @internal */
constructor(connectionId, duration, failure) {
this.connectionId = connectionId;
this.duration = duration;
this.failure = failure;
}
}
exports.ServerHeartbeatFailedEvent = ServerHeartbeatFailedEvent;
//# sourceMappingURL=events.js.map