comparison mod_storage_memory/mod_storage_memory.lua @ 1259:fa7e402fcdc1

mod_storage_memory: Simple in-memory only storage backend without persistence
author Kim Alvefur <zash@zash.se>
date Tue, 31 Dec 2013 02:17:50 +0100
parents
children 8b997d9cf09e
comparison
equal deleted inserted replaced
1258:fc82d8eded7d 1259:fa7e402fcdc1
1
2 local memory = setmetatable({}, {
3 __index = function(t, k)
4 local store = module:shared(k)
5 t[k] = store;
6 return store;
7 end
8 });
9
10 local keyval_store = {};
11 keyval_store.__index = keyval_store;
12
13 function keyval_store:get(username)
14 return self.store[username];
15 end
16
17 function keyval_store:set(username, data)
18 self.store[username] = data;
19 return true;
20 end
21
22 local stores = {
23 keyval = keyval_store;
24 }
25
26 local driver = {};
27
28 function driver:open(store, typ)
29 local store_mt = stores[typ or "keyval"];
30 if store_mt then
31 return setmetatable({ store = memory[store] }, store_mt);
32 end
33 return nil, "unsupported-store";
34 end
35
36 module:provides("storage", driver);