Comparison

plugins/mod_storage_memory.lua @ 9783:4c91afc43639

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