aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/lib/store.js
diff options
context:
space:
mode:
Diffstat (limited to 'signaling-server/node_modules/socket.io/lib/store.js')
-rw-r--r--signaling-server/node_modules/socket.io/lib/store.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/signaling-server/node_modules/socket.io/lib/store.js b/signaling-server/node_modules/socket.io/lib/store.js
new file mode 100644
index 0000000..06c0389
--- /dev/null
+++ b/signaling-server/node_modules/socket.io/lib/store.js
@@ -0,0 +1,98 @@
+
+/*!
+ * socket.io-node
+ * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Expose the constructor.
+ */
+
+exports = module.exports = Store;
+
+/**
+ * Module dependencies.
+ */
+
+var EventEmitter = process.EventEmitter;
+
+/**
+ * Store interface
+ *
+ * @api public
+ */
+
+function Store (options) {
+ this.options = options;
+ this.clients = {};
+};
+
+/**
+ * Inherit from EventEmitter.
+ */
+
+Store.prototype.__proto__ = EventEmitter.prototype;
+
+/**
+ * Initializes a client store
+ *
+ * @param {String} id
+ * @api public
+ */
+
+Store.prototype.client = function (id) {
+ if (!this.clients[id]) {
+ this.clients[id] = new (this.constructor.Client)(this, id);
+ }
+
+ return this.clients[id];
+};
+
+/**
+ * Destroys a client
+ *
+ * @api {String} sid
+ * @param {Number} number of seconds to expire client data
+ * @api private
+ */
+
+Store.prototype.destroyClient = function (id, expiration) {
+ if (this.clients[id]) {
+ this.clients[id].destroy(expiration);
+ delete this.clients[id];
+ }
+
+ return this;
+};
+
+/**
+ * Destroys the store
+ *
+ * @param {Number} number of seconds to expire client data
+ * @api private
+ */
+
+Store.prototype.destroy = function (clientExpiration) {
+ var keys = Object.keys(this.clients)
+ , count = keys.length;
+
+ for (var i = 0, l = count; i < l; i++) {
+ this.destroyClient(keys[i], clientExpiration);
+ }
+
+ this.clients = {};
+
+ return this;
+};
+
+/**
+ * Client.
+ *
+ * @api public
+ */
+
+Store.Client = function (store, id) {
+ this.store = store;
+ this.id = id;
+};