Comparison

plugins/mod_storage_memory.lua @ 9881:68faa0c1a99c 0.11

mod_storage_memory: Implement :user iteration API
author Kim Alvefur <zash@zash.se>
date Mon, 14 Jan 2019 00:17:02 +0100
parent 9838:40ed04014b97
child 9882:18f025b3987d
comparison
equal deleted inserted replaced
9880:78885b1bbb91 9881:68faa0c1a99c
21 local function _purge_store(self, username) 21 local function _purge_store(self, username)
22 self.store[username or NULL] = nil; 22 self.store[username or NULL] = nil;
23 return true; 23 return true;
24 end 24 end
25 25
26 local function _users(self)
27 return next, self.store, nil;
28 end
29
26 local keyval_store = {}; 30 local keyval_store = {};
27 keyval_store.__index = keyval_store; 31 keyval_store.__index = keyval_store;
28 32
29 function keyval_store:get(username) 33 function keyval_store:get(username)
30 return (self.store[username or NULL] or NULL)(); 34 return (self.store[username or NULL] or NULL)();
38 return true; 42 return true;
39 end 43 end
40 44
41 keyval_store.purge = _purge_store; 45 keyval_store.purge = _purge_store;
42 46
47 keyval_store.users = _users;
48
43 local archive_store = {}; 49 local archive_store = {};
44 archive_store.__index = archive_store; 50 archive_store.__index = archive_store;
51
52 archive_store.users = _users;
45 53
46 function archive_store:append(username, key, value, when, with) 54 function archive_store:append(username, key, value, when, with)
47 if is_stanza(value) then 55 if is_stanza(value) then
48 value = st.preserialize(value); 56 value = st.preserialize(value);
49 value = envload("return xml"..serialize(value), "=(stanza)", { xml = st.deserialize }) 57 value = envload("return xml"..serialize(value), "=(stanza)", { xml = st.deserialize })