# HG changeset patch # User Kim Alvefur # Date 1388452670 -3600 # Node ID fa7e402fcdc1747c6961afbe0b52e465ad7085da # Parent fc82d8eded7d2ec788dc5de44dc0ab18e2c60d2d mod_storage_memory: Simple in-memory only storage backend without persistence diff -r fc82d8eded7d -r fa7e402fcdc1 mod_storage_memory/mod_storage_memory.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_storage_memory/mod_storage_memory.lua Tue Dec 31 02:17:50 2013 +0100 @@ -0,0 +1,36 @@ + +local memory = setmetatable({}, { + __index = function(t, k) + local store = module:shared(k) + t[k] = store; + return store; + end +}); + +local keyval_store = {}; +keyval_store.__index = keyval_store; + +function keyval_store:get(username) + return self.store[username]; +end + +function keyval_store:set(username, data) + self.store[username] = data; + return true; +end + +local stores = { + keyval = keyval_store; +} + +local driver = {}; + +function driver:open(store, typ) + local store_mt = stores[typ or "keyval"]; + if store_mt then + return setmetatable({ store = memory[store] }, store_mt); + end + return nil, "unsupported-store"; +end + +module:provides("storage", driver);