123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- 'use strict';
- /**
- * The base class for all monitoring events published from the connection pool
- *
- * @property {number} time A timestamp when the event was created
- * @property {string} address The address (host/port pair) of the pool
- */
- class ConnectionPoolMonitoringEvent {
- constructor(pool) {
- this.time = new Date();
- this.address = pool.address;
- }
- }
- /**
- * An event published when a connection pool is created
- *
- * @property {Object} options The options used to create this connection pool
- */
- class ConnectionPoolCreatedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool) {
- super(pool);
- this.options = pool.options;
- }
- }
- /**
- * An event published when a connection pool is closed
- */
- class ConnectionPoolClosedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool) {
- super(pool);
- }
- }
- /**
- * An event published when a connection pool creates a new connection
- *
- * @property {number} connectionId A monotonically increasing, per-pool id for the newly created connection
- */
- class ConnectionCreatedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, connection) {
- super(pool);
- this.connectionId = connection.id;
- }
- }
- /**
- * An event published when a connection is ready for use
- *
- * @property {number} connectionId The id of the connection
- */
- class ConnectionReadyEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, connection) {
- super(pool);
- this.connectionId = connection.id;
- }
- }
- /**
- * An event published when a connection is closed
- *
- * @property {number} connectionId The id of the connection
- * @property {string} reason The reason the connection was closed
- */
- class ConnectionClosedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, connection, reason) {
- super(pool);
- this.connectionId = connection.id;
- this.reason = reason || 'unknown';
- }
- }
- /**
- * An event published when a request to check a connection out begins
- */
- class ConnectionCheckOutStartedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool) {
- super(pool);
- }
- }
- /**
- * An event published when a request to check a connection out fails
- *
- * @property {string} reason The reason the attempt to check out failed
- */
- class ConnectionCheckOutFailedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, reason) {
- super(pool);
- this.reason = reason;
- }
- }
- /**
- * An event published when a connection is checked out of the connection pool
- *
- * @property {number} connectionId The id of the connection
- */
- class ConnectionCheckedOutEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, connection) {
- super(pool);
- this.connectionId = connection.id;
- }
- }
- /**
- * An event published when a connection is checked into the connection pool
- *
- * @property {number} connectionId The id of the connection
- */
- class ConnectionCheckedInEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool, connection) {
- super(pool);
- this.connectionId = connection.id;
- }
- }
- /**
- * An event published when a connection pool is cleared
- */
- class ConnectionPoolClearedEvent extends ConnectionPoolMonitoringEvent {
- constructor(pool) {
- super(pool);
- }
- }
- const CMAP_EVENT_NAMES = [
- 'connectionPoolCreated',
- 'connectionPoolClosed',
- 'connectionCreated',
- 'connectionReady',
- 'connectionClosed',
- 'connectionCheckOutStarted',
- 'connectionCheckOutFailed',
- 'connectionCheckedOut',
- 'connectionCheckedIn',
- 'connectionPoolCleared'
- ];
- module.exports = {
- CMAP_EVENT_NAMES,
- ConnectionPoolCreatedEvent,
- ConnectionPoolClosedEvent,
- ConnectionCreatedEvent,
- ConnectionReadyEvent,
- ConnectionClosedEvent,
- ConnectionCheckOutStartedEvent,
- ConnectionCheckOutFailedEvent,
- ConnectionCheckedOutEvent,
- ConnectionCheckedInEvent,
- ConnectionPoolClearedEvent
- };
|