From a664835b0339be6712a556be8fb47302cd508562 Mon Sep 17 00:00:00 2001 From: "Huaiyu (Kitty) Liu" Date: Wed, 25 May 2011 13:11:55 -0700 Subject: [PATCH] Added implementation of SendInstantMessage() in RegionSyncAvatar, and SendGridInstantMessageViaXMLRPC to IMessageTransferModule to enable proper forwarding of instance messages. --- .../InstantMessage/MessageTransferModule.cs | 5 ++++- .../RegionSyncModule/RegionSyncAvatar.cs | 19 +++++++++++++------ .../Interfaces/IMessageTransferModule.cs | 3 +++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs index 77c714710f..29a862916e 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs @@ -446,7 +446,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage } - protected virtual void SendGridInstantMessageViaXMLRPC(GridInstantMessage im, MessageResultNotification result) + //protected virtual void SendGridInstantMessageViaXMLRPC(GridInstantMessage im, MessageResultNotification result) + //DSG: make this function public, so that we can call from outside to + //use the Grid Service to send the instant message. + public virtual void SendGridInstantMessageViaXMLRPC(GridInstantMessage im, MessageResultNotification result) { GridInstantMessageDelegate d = SendGridInstantMessageViaXMLRPCAsync; diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs index ed256b9646..87d26689ee 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs @@ -33,6 +33,8 @@ using OpenSim.Framework; using OpenSim.Framework.Client; using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Interfaces; + namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule { public class RegionSyncAvatar : IClientAPI, IClientCore @@ -509,7 +511,12 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule public void SendInstantMessage(GridInstantMessage im) { - + IMessageTransferModule m_msgTransferModule = m_scene.RequestModuleInterface(); + + if (m_msgTransferModule != null) + { + m_msgTransferModule.SendGridInstantMessageViaXMLRPC(im, delegate(bool success) { }); + } } public void SendGenericMessage(string method, List message) @@ -988,11 +995,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule public void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner) { - } - - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) - { - + } + + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + { + } public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs index b0b47a787b..1ecb85df92 100644 --- a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs @@ -37,5 +37,8 @@ namespace OpenSim.Region.Framework.Interfaces event UndeliveredMessage OnUndeliveredMessage; void SendInstantMessage(GridInstantMessage im, MessageResultNotification result); + + //DSG: add this to the interface to enable outsiders to call it + void SendGridInstantMessageViaXMLRPC(GridInstantMessage im, MessageResultNotification result); } }