--- a/core/rostermanager.lua Sun Oct 12 17:38:17 2008 +0500
+++ b/core/rostermanager.lua Sun Oct 12 17:40:03 2008 +0500
@@ -14,7 +14,7 @@
module "rostermanager"
-function getroster(username, host)
+--[[function getroster(username, host)
return {
["mattj@localhost"] = true,
["tobias@getjabber.ath.cx"] = true,
@@ -22,7 +22,35 @@
["thorns@getjabber.ath.cx"] = true,
["idw@getjabber.ath.cx"] = true,
}
--- return datamanager.load(username, host, "roster") or {};
+ --return datamanager.load(username, host, "roster") or {};
+end]]
+
+function add_to_roster(roster, jid, item)
+ roster[jid] = item;
+ -- TODO implement
+end
+
+function remove_from_roster(roster, jid)
+ roster[jid] = nil;
+ -- TODO implement
+end
+
+function load_roster(host, username)
+ if hosts[host] and hosts[host].sessions[username] then
+ local roster = hosts[host].sessions[username].roster;
+ if not roster then
+ return hosts[host].sessions[username].roster = datamanger.load(username, host, "roster") or {};
+ end
+ return roster;
+ end
+ error("Attempt to load roster for non-loaded user"); --return nil;
+end
+
+function save_roster(host, username)
+ if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then
+ return datamanager.save(username, host, "roster", hosts[host].sessions[username].roster);
+ end
+ return nil;
end
return _M;
\ No newline at end of file