From 27e557eb9857ccc34ae3588c4e0ff43bd5e6644a Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 16 Nov 2008 00:47:21 +0000 Subject: Introduces the message transfer module. It splits the transfer mechanics off the IM module and makes it into a module of it's own, which can be used by all other modules. Removes some ugly hacks. Refer to the IM module to see how it's used. Also fixes the persistence issue (Mantis #2598) --- OpenSim/Region/Environment/Scenes/EventManager.cs | 29 +++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/EventManager.cs') diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs index 5d21dc5..bcefe37 100644 --- a/OpenSim/Region/Environment/Scenes/EventManager.cs +++ b/OpenSim/Region/Environment/Scenes/EventManager.cs @@ -144,9 +144,11 @@ namespace OpenSim.Region.Environment.Scenes public event SignificantClientMovement OnSignificantClientMovement; - public delegate void NewGridInstantMessage(GridInstantMessage message, InstantMessageReceiver whichModule); + public delegate void IncomingInstantMessage(GridInstantMessage message); - public event NewGridInstantMessage OnGridInstantMessage; + public event IncomingInstantMessage OnIncomingInstantMessage; + + public event IncomingInstantMessage OnUnhandledInstantMessage; public delegate void ClientClosed(UUID clientID); @@ -352,7 +354,8 @@ namespace OpenSim.Region.Environment.Scenes private LandObjectAdded handlerLandObjectAdded = null; //OnLandObjectAdded; private LandObjectRemoved handlerLandObjectRemoved = null; //OnLandObjectRemoved; private AvatarEnteringNewParcel handlerAvatarEnteringNewParcel = null; //OnAvatarEnteringNewParcel; - private NewGridInstantMessage handlerGridInstantMessage = null; //OnGridInstantMessage; + private IncomingInstantMessage handlerIncomingInstantMessage = null; //OnIncomingInstantMessage; + private IncomingInstantMessage handlerUnhandledInstantMessage = null; //OnUnhandledInstantMessage; private ClientClosed handlerClientClosed = null; //OnClientClosed; private OnMakeChildAgentDelegate handlerMakeChildAgent = null; //OnMakeChildAgent; private OnMakeRootAgentDelegate handlerMakeRootAgent = null; //OnMakeRootAgent; @@ -641,15 +644,21 @@ namespace OpenSim.Region.Environment.Scenes } } - ///Used to pass instnat messages around between the Scene, the Friends Module and the Instant Messsage Module - ///Object containing the Instant Message Data - ///A bit vector containing the modules to send the message to - public void TriggerGridInstantMessage(GridInstantMessage message, InstantMessageReceiver whichModule) + public void TriggerIncomingInstantMessage(GridInstantMessage message) + { + handlerIncomingInstantMessage = OnIncomingInstantMessage; + if (handlerIncomingInstantMessage != null) + { + handlerIncomingInstantMessage(message); + } + } + + public void TriggerUnhandledInstantMessage(GridInstantMessage message) { - handlerGridInstantMessage = OnGridInstantMessage; - if (handlerGridInstantMessage != null) + handlerUnhandledInstantMessage = OnUnhandledInstantMessage; + if (handlerUnhandledInstantMessage != null) { - handlerGridInstantMessage(message, whichModule); + handlerUnhandledInstantMessage(message); } } -- cgit v1.1