Sha256: fb0d499318e48947f5327a116b6e5c6f5e321324f6f18ce0e9587a5429d7220d

Contents?: true

Size: 1.87 KB

Versions: 18

Compression:

Stored size: 1.87 KB

Contents

/*!
 * 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;
};

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
hooch-0.4.2 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.4.1 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.4.0 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.3.0 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.2.1 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.2.0 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.1.0 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.0.8 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.0.7 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
hooch-0.0.6 jasmine/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.16 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.15 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.14 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.13 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.12 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.11 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
entangled-0.0.10 spec/dummy/public/node_modules/karma/node_modules/socket.io/lib/stores/memory.js
iron_worker_ng-0.10.1 iron_worker_examples/binary/phantom-nodejs/node_modules/phantom/node_modules/dnode/node_modules/socket.io/lib/stores/memory.js