Software /
code /
prosody
Diff
plugins/mod_storage_internal.lua @ 8018:9545d0a9401f
mod_storage_internal: Separate driver from keyval implementation
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 31 Mar 2017 17:34:33 +0200 |
parent | 6283:7cf6d3a2c855 |
child | 8019:925098aad268 |
line wrap: on
line diff
--- a/plugins/mod_storage_internal.lua Fri Mar 31 17:29:08 2017 +0200 +++ b/plugins/mod_storage_internal.lua Fri Mar 31 17:34:33 2017 +0200 @@ -3,19 +3,23 @@ local host = module.host; local driver = {}; -local driver_mt = { __index = driver }; function driver:open(store, typ) - if typ and typ ~= "keyval" then + local mt = self[typ or "keyval"] + if not mt then return nil, "unsupported-store"; end - return setmetatable({ store = store, type = typ }, driver_mt); + return setmetatable({ store = store, type = typ }, mt); end -function driver:get(user) + +local keyval = { }; +driver.keyval = { __index = keyval }; + +function keyval:get(user) return datamanager.load(user, host, self.store); end -function driver:set(user, data) +function keyval:set(user, data) return datamanager.store(user, host, self.store, data); end @@ -23,7 +27,7 @@ return datamanager.stores(username, host); end -function driver:users() +function keyval:users() return datamanager.users(host, self.store, self.type); end