Mercurial > prosody-modules
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); |