Software /
code /
prosody
Changeset
932:1ed3e5fe165a
Added: datamanager: Allow a callback to be installed which selectively prevents disk writes
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Mon, 30 Mar 2009 03:22:34 +0500 |
parents | 931:4514ed5ee943 |
children | 933:2a5352e0e10e |
files | util/datamanager.lua |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/util/datamanager.lua Mon Mar 30 03:06:01 2009 +0500 +++ b/util/datamanager.lua Mon Mar 30 03:22:34 2009 +0500 @@ -50,6 +50,7 @@ end local data_path = "data"; +local callback; ------- API ------------- @@ -57,6 +58,9 @@ log("info", "Setting data path to: %s", path); data_path = path; end +function set_callback(func) + callback = func; +end function getpath(username, host, datastore, ext, create) ext = ext or "dat"; @@ -93,6 +97,7 @@ if not data then data = {}; end + if callback and callback(username, host, datastore) then return true; end -- save the datastore local f, msg = io_open(getpath(username, host, datastore, nil, true), "w+"); if not f then @@ -113,6 +118,7 @@ function list_append(username, host, datastore, data) if not data then return; end + if callback and callback(username, host, datastore) then return true; end -- save the datastore local f, msg = io_open(getpath(username, host, datastore, "list", true), "a+"); if not f then @@ -130,6 +136,7 @@ if not data then data = {}; end + if callback and callback(username, host, datastore) then return true; end -- save the datastore local f, msg = io_open(getpath(username, host, datastore, "list", true), "w+"); if not f then