UNPKG

dl

Version:

DreamLab Libs

62 lines (53 loc) 1.99 kB
var Class = require("core").Class; var Memcache = require('./Memcache.js').Memcache; var assertions = require("core").common.assertions; var CFMemcache = function(){ this.Extends = Memcache; /* this._memory = {}; */ this.initialize = function(options){ this.parent(options); this._memory = {}; }; this.get = function(key, callback){ assertions.isString(key, Memcache.Exception.WRONG_TYPE); if(this._memory.hasOwnProperty(key)){ this._memory[key].callbacks.push(callback); } else { // dodaje klucz do memory this._memory[key] = { data: null, callbacks: [callback] }; var that = this; this.parent(key, function(data){ that._memory[key].data = data; for(var cbIndex=0,max=that._memory[key].callbacks.length;cbIndex<max;cbIndex++){ try{ that._memory[key].callbacks[cbIndex](that._memory[key].data); } catch (ex){ console.error('emerg', ex.message); } } delete that._memory[key]; }); } }; this.set = function(key, value, callback, lifeTime, waitForReply){ assertions.isString(key, Memcache.Exception.WRONG_TYPE); if(this._memory.hasOwnProperty(key)){ this._memory[key].data = value; } this.parent(key, value, callback, lifeTime, waitForReply); }; this['delete'] = function(key, callback){ assertions.isString(key, Memcache.Exception.WRONG_TYPE); if(this._memory.hasOwnProperty(key)){ this._memory[key].data = null; } this.parent(key, callback); }; }; CFMemcache = new Class(new CFMemcache()); exports.CFMemcache = CFMemcache;