123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /*!
- * socket.io-node
- * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
- * MIT Licensed
- */
- /**
- * Module dependencies.
- */
- var crypto = require('crypto')
- , Store = require('../store');
- /**
- * Exports the constructor.
- */
- exports = module.exports = Memory;
- Memory.Client = Client;
- /**
- * Memory store
- *
- * @api public
- */
- function Memory (opts) {
- Store.call(this, opts);
- };
- /**
- * Inherits from Store.
- */
- Memory.prototype.__proto__ = Store.prototype;
- /**
- * Publishes a message.
- *
- * @api private
- */
- Memory.prototype.publish = function () { };
- /**
- * Subscribes to a channel
- *
- * @api private
- */
- Memory.prototype.subscribe = function () { };
- /**
- * Unsubscribes
- *
- * @api private
- */
- Memory.prototype.unsubscribe = function () { };
- /**
- * Client constructor
- *
- * @api private
- */
- function Client () {
- Store.Client.apply(this, arguments);
- this.data = {};
- };
- /**
- * Inherits from Store.Client
- */
- Client.prototype.__proto__ = Store.Client;
- /**
- * Gets a key
- *
- * @api public
- */
- Client.prototype.get = function (key, fn) {
- fn(null, this.data[key] === undefined ? null : this.data[key]);
- return this;
- };
- /**
- * Sets a key
- *
- * @api public
- */
- Client.prototype.set = function (key, value, fn) {
- this.data[key] = value;
- fn && fn(null);
- return this;
- };
- /**
- * Has a key
- *
- * @api public
- */
- Client.prototype.has = function (key, fn) {
- fn(null, key in this.data);
- };
- /**
- * Deletes a key
- *
- * @api public
- */
- Client.prototype.del = function (key, fn) {
- delete this.data[key];
- fn && fn(null);
- return this;
- };
- /**
- * Destroys the client.
- *
- * @param {Number} number of seconds to expire data
- * @api private
- */
- Client.prototype.destroy = function (expiration) {
- if ('number' != typeof expiration) {
- this.data = {};
- } else {
- var self = this;
- setTimeout(function () {
- self.data = {};
- }, expiration * 1000);
- }
- return this;
- };
|