From 77e7bbcbf753018074211ca8358c642dd7204f42 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 11 Mar 2014 00:11:18 +0000
Subject: Send group notices through the same messaging module mechanism used
to send group chat to avoid timeout issues when sending messages to large
groups.
Only implementing for XmlRpcGroups initially to test.
May require MessageOnlineUsersOnly = true in [Groups] to be effective.
In relation to http://opensimulator.org/mantis/view.php?id=7037
---
.../Framework/Interfaces/IGroupsMessagingModule.cs | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs')
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs
index f158236..61bd153 100644
--- a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs
@@ -25,6 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+using System;
using OpenMetaverse;
using OpenSim.Framework;
@@ -57,7 +58,7 @@ namespace OpenSim.Region.Framework.Interfaces
bool StartGroupChatSession(UUID agentID, UUID groupID);
///
- /// Send a message to an entire group.
+ /// Send a message to each member of a group whose chat session is active.
///
///
/// The message itself. The fields that must be populated are
@@ -69,5 +70,23 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
void SendMessageToGroup(GridInstantMessage im, UUID groupID);
+
+ ///
+ /// Send a message to all the members of a group that fulfill a condition.
+ ///
+ ///
+ /// The message itself. The fields that must be populated are
+ ///
+ /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical)
+ /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog
+ /// message - The message itself
+ /// dialog - This must be (byte)InstantMessageDialog.SessionSend
+ ///
+ ///
+ ///
+ /// The condition that must be met by a member for the message to be sent. If null then the message is sent
+ /// if the chat session is active.
+ ///
+ void SendMessageToGroup(GridInstantMessage im, UUID groupID, Func sendCondition);
}
}
\ No newline at end of file
--
cgit v1.1