comparison mod_storage_memory/mod_storage_memory.lua @ 2619:1e4bbff0a6fd

mod_storage_memory: Add :purge() method to all store types
author Matthew Wild <mwild1@gmail.com>
date Tue, 14 Mar 2017 12:59:41 +0000
parents a347b71adb07
children 8b8cab2eb7fc
comparison
equal deleted inserted replaced
2618:c6652d055ba3 2619:1e4bbff0a6fd
6 return store; 6 return store;
7 end 7 end
8 }); 8 });
9 9
10 local NULL = {}; 10 local NULL = {};
11
12 local function _purge_store(self, username)
13 self.store[username or NULL] = nil;
14 return true;
15 end
11 16
12 local keyval_store = {}; 17 local keyval_store = {};
13 keyval_store.__index = keyval_store; 18 keyval_store.__index = keyval_store;
14 19
15 function keyval_store:get(username) 20 function keyval_store:get(username)
18 23
19 function keyval_store:set(username, data) 24 function keyval_store:set(username, data)
20 self.store[username or NULL] = data; 25 self.store[username or NULL] = data;
21 return true; 26 return true;
22 end 27 end
28
29 keyval_store.purge = _purge_store;
23 30
24 local map_store = {}; 31 local map_store = {};
25 map_store.__index = map_store; 32 map_store.__index = map_store;
26 33
27 function map_store:get(username, key) 34 function map_store:get(username, key)
52 if v == self.remove then v = nil; end 59 if v == self.remove then v = nil; end
53 userstore[k] = v; 60 userstore[k] = v;
54 end 61 end
55 return true; 62 return true;
56 end 63 end
64
65 map_store.purge = _purge_store;
57 66
58 local archive_store = {}; 67 local archive_store = {};
59 archive_store.__index = archive_store; 68 archive_store.__index = archive_store;
60 69
61 function archive_store:append(username, key, value, when, with) 70 function archive_store:append(username, key, value, when, with)
142 self.store[username or NULL] = nil; 151 self.store[username or NULL] = nil;
143 end 152 end
144 return true; 153 return true;
145 end 154 end
146 155
156 archive_store.purge = _purge_store;
157
147 local stores = { 158 local stores = {
148 keyval = keyval_store; 159 keyval = keyval_store;
149 map = map_store; 160 map = map_store;
150 archive = archive_store; 161 archive = archive_store;
151 } 162 }