core/storagemanager.lua
changeset 5129 e8253c931166
parent 5111 7e577727fb9f
child 5130 051d352ed03c
equal deleted inserted replaced
5128:834ab74585ec 5129:e8253c931166
    92 		end
    92 		end
    93 	end
    93 	end
    94 	return ret, err;
    94 	return ret, err;
    95 end
    95 end
    96 
    96 
       
    97 function purge(user, host)
       
    98 	local storage = config.get(host, "core", "storage");
       
    99 	local driver_name;
       
   100 	if type(storage) == "table" then
       
   101 		-- multiple storage backends in use that we need to purge
       
   102 		local purged = {};
       
   103 		for store, driver in pairs(storage) do
       
   104 			if not purged[driver] then
       
   105 				purged[driver] = get_driver(host, store):purge(user);
       
   106 			end
       
   107 		end
       
   108 	end
       
   109 	get_driver(host):purge(user); -- and the default driver
       
   110 
       
   111 	olddm.purge(user, host); -- COMPAT list stores, like offline messages end up in the old datamanager
       
   112 
       
   113 	return true;
       
   114 end
       
   115 
    97 function datamanager.load(username, host, datastore)
   116 function datamanager.load(username, host, datastore)
    98 	return open(host, datastore):get(username);
   117 	return open(host, datastore):get(username);
    99 end
   118 end
   100 function datamanager.store(username, host, datastore, data)
   119 function datamanager.store(username, host, datastore, data)
   101 	return open(host, datastore):set(username, data);
   120 	return open(host, datastore):set(username, data);
   102 end
   121 end
   103 function datamanager.list_stores(username, host)
   122 function datamanager.list_stores(username, host)
   104 	return get_driver(host):list_stores(username);
   123 	return get_driver(host):list_stores(username);
   105 end
   124 end
   106 function datamanager.purge(username, host)
   125 function datamanager.purge(username, host)
   107 	return get_driver(host):purge(username);
   126 	return purge(username);
   108 end
   127 end
   109 
   128 
   110 return _M;
   129 return _M;