summaryrefslogtreecommitdiffstats
path: root/node_modules/mongodb/lib/cmap/events.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/mongodb/lib/cmap/events.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/mongodb/lib/cmap/events.js')
-rw-r--r--node_modules/mongodb/lib/cmap/events.js154
1 files changed, 154 insertions, 0 deletions
diff --git a/node_modules/mongodb/lib/cmap/events.js b/node_modules/mongodb/lib/cmap/events.js
new file mode 100644
index 0000000..dcc8b67
--- /dev/null
+++ b/node_modules/mongodb/lib/cmap/events.js
@@ -0,0 +1,154 @@
+'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
+};