From bf8214815272efae07b05288103cbc8216c97af0 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Tue, 26 Feb 2008 09:16:31 +0000 Subject: * Added base thread pool based presence informing to the message server. * Not ready yet for use. --- OpenSim/Grid/MessagingServer/PresenceInformer.cs | 59 ++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 OpenSim/Grid/MessagingServer/PresenceInformer.cs (limited to 'OpenSim/Grid/MessagingServer/PresenceInformer.cs') diff --git a/OpenSim/Grid/MessagingServer/PresenceInformer.cs b/OpenSim/Grid/MessagingServer/PresenceInformer.cs new file mode 100644 index 0000000..877d104 --- /dev/null +++ b/OpenSim/Grid/MessagingServer/PresenceInformer.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Text; +using libsecondlife; +using Nwc.XmlRpc; +using OpenSim.Framework; +using OpenSim.Framework.Console; +using OpenSim.Framework.Data; +using OpenSim.Framework.Servers; + +namespace OpenSim.Grid.MessagingServer +{ + public class PresenceInformer + { + public UserPresenceData presence1 = null; + public UserPresenceData presence2 = null; + private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + public PresenceInformer() + { + + } + public void go(object o) + { + if (presence1 != null && presence2 != null) + { + SendRegionPresenceUpdate(presence1, presence2); + } + + } + + /// + /// Informs a region about an Agent + /// + /// User to talk about + /// User we're sending this too (contains the region) + public void SendRegionPresenceUpdate(UserPresenceData TalkingAbout, UserPresenceData UserToUpdate) + { + // TODO: Fill in pertenant Presence Data from 'TalkingAbout' + + RegionProfileData whichRegion = UserToUpdate.regionData; + //whichRegion.httpServerURI + + Hashtable PresenceParams = new Hashtable(); + ArrayList SendParams = new ArrayList(); + SendParams.Add(PresenceParams); + + m_log.Info("[PRESENCE]: Informing " + whichRegion.regionName + " at " + whichRegion.httpServerURI); + // Send + XmlRpcRequest RegionReq = new XmlRpcRequest("presence_update", SendParams); + XmlRpcResponse RegionResp = RegionReq.Send(whichRegion.httpServerURI, 6000); + } + + + } +} -- cgit v1.1