aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/GridServer
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Grid/GridServer/GridMessagingModule.cs43
-rw-r--r--OpenSim/Grid/GridServer/GridXmlRpcModule.cs8
-rw-r--r--OpenSim/Grid/GridServer/IGridMessagingMapper.cs (renamed from OpenSim/Grid/GridServer/IGridMessagingModule.cs)78
3 files changed, 75 insertions, 54 deletions
diff --git a/OpenSim/Grid/GridServer/GridMessagingModule.cs b/OpenSim/Grid/GridServer/GridMessagingModule.cs
index 16623e7..14ce727 100644
--- a/OpenSim/Grid/GridServer/GridMessagingModule.cs
+++ b/OpenSim/Grid/GridServer/GridMessagingModule.cs
@@ -37,7 +37,7 @@ using OpenSim.Framework;
37 37
38namespace OpenSim.Grid.GridServer 38namespace OpenSim.Grid.GridServer
39{ 39{
40 public class GridMessagingModule : IGridMessagingModule 40 public class GridMessagingModule : IGridMessagingMapper
41 { 41 {
42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
43 43
@@ -54,12 +54,7 @@ namespace OpenSim.Grid.GridServer
54 protected BaseHttpServer m_httpServer; 54 protected BaseHttpServer m_httpServer;
55 55
56 // This is here so that the grid server can hand out MessageServer settings to regions on registration 56 // This is here so that the grid server can hand out MessageServer settings to regions on registration
57 private List<MessageServerInfo> _MessageServers = new List<MessageServerInfo>(); 57 private List<MessageServerInfo> m_messageServers = new List<MessageServerInfo>();
58
59 public List<MessageServerInfo> MessageServers
60 {
61 get { return _MessageServers; }
62 }
63 58
64 public GridMessagingModule() 59 public GridMessagingModule()
65 { 60 {
@@ -72,7 +67,7 @@ namespace OpenSim.Grid.GridServer
72 m_gridCore = gridCore; 67 m_gridCore = gridCore;
73 m_config = config; 68 m_config = config;
74 69
75 m_gridCore.RegisterInterface<IGridMessagingModule>(this); 70 m_gridCore.RegisterInterface<IGridMessagingMapper>(this);
76 71
77 RegisterHandlers(); 72 RegisterHandlers();
78 } 73 }
@@ -92,6 +87,14 @@ namespace OpenSim.Grid.GridServer
92 m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer); 87 m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer);
93 } 88 }
94 89
90 public List<MessageServerInfo> GetMessageServersList()
91 {
92 lock (m_messageServers)
93 {
94 return new List<MessageServerInfo>(m_messageServers);
95 }
96 }
97
95 public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) 98 public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request)
96 { 99 {
97 XmlRpcResponse response = new XmlRpcResponse(); 100 XmlRpcResponse response = new XmlRpcResponse();
@@ -107,8 +110,7 @@ namespace OpenSim.Grid.GridServer
107 m.URI = URI; 110 m.URI = URI;
108 m.sendkey = sendkey; 111 m.sendkey = sendkey;
109 m.recvkey = recvkey; 112 m.recvkey = recvkey;
110 if (!_MessageServers.Contains(m)) 113 RegisterMessageServer(m);
111 _MessageServers.Add(m);
112 responseData["responsestring"] = "TRUE"; 114 responseData["responsestring"] = "TRUE";
113 response.Value = responseData; 115 response.Value = responseData;
114 } 116 }
@@ -130,12 +132,29 @@ namespace OpenSim.Grid.GridServer
130 m.URI = URI; 132 m.URI = URI;
131 m.sendkey = sendkey; 133 m.sendkey = sendkey;
132 m.recvkey = recvkey; 134 m.recvkey = recvkey;
133 if (_MessageServers.Contains(m)) 135 DeRegisterMessageServer(m);
134 _MessageServers.Remove(m);
135 responseData["responsestring"] = "TRUE"; 136 responseData["responsestring"] = "TRUE";
136 response.Value = responseData; 137 response.Value = responseData;
137 } 138 }
138 return response; 139 return response;
139 } 140 }
141
142 public void RegisterMessageServer(MessageServerInfo m)
143 {
144 lock (m_messageServers)
145 {
146 if (!m_messageServers.Contains(m))
147 m_messageServers.Add(m);
148 }
149 }
150
151 public void DeRegisterMessageServer(MessageServerInfo m)
152 {
153 lock (m_messageServers)
154 {
155 if (m_messageServers.Contains(m))
156 m_messageServers.Remove(m);
157 }
158 }
140 } 159 }
141} 160}
diff --git a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs
index 874b57f..e0e16b5 100644
--- a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs
+++ b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Grid.GridServer
50 50
51 protected GridConfig m_config; 51 protected GridConfig m_config;
52 52
53 protected IGridMessagingModule m_messagingServerMapper; 53 protected IGridMessagingMapper m_messagingServerMapper;
54 /// <value> 54 /// <value>
55 /// Used to notify old regions as to which OpenSim version to upgrade to 55 /// Used to notify old regions as to which OpenSim version to upgrade to
56 /// </value> 56 /// </value>
@@ -79,8 +79,8 @@ namespace OpenSim.Grid.GridServer
79 79
80 public void PostInitialise() 80 public void PostInitialise()
81 { 81 {
82 IGridMessagingModule messagingModule; 82 IGridMessagingMapper messagingModule;
83 if (m_gridCore.TryGet<IGridMessagingModule>(out messagingModule)) 83 if (m_gridCore.TryGet<IGridMessagingMapper>(out messagingModule))
84 { 84 {
85 m_messagingServerMapper = messagingModule; 85 m_messagingServerMapper = messagingModule;
86 } 86 }
@@ -401,7 +401,7 @@ namespace OpenSim.Grid.GridServer
401 //{ 401 //{
402 if(m_messagingServerMapper != null) 402 if(m_messagingServerMapper != null)
403 { 403 {
404 List<MessageServerInfo> messageServers = m_messagingServerMapper.MessageServers; 404 List<MessageServerInfo> messageServers = m_messagingServerMapper.GetMessageServersList();
405 responseData["messageserver_count"] = messageServers.Count; 405 responseData["messageserver_count"] = messageServers.Count;
406 406
407 for (int i = 0; i < messageServers.Count; i++) 407 for (int i = 0; i < messageServers.Count; i++)
diff --git a/OpenSim/Grid/GridServer/IGridMessagingModule.cs b/OpenSim/Grid/GridServer/IGridMessagingMapper.cs
index 7e37f586..0183ad5 100644
--- a/OpenSim/Grid/GridServer/IGridMessagingModule.cs
+++ b/OpenSim/Grid/GridServer/IGridMessagingMapper.cs
@@ -1,38 +1,40 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright 7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright 9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the 12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products 13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission. 14 * derived from this software without specific prior written permission.
15 * 15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using OpenSim.Framework.Servers; 30using OpenSim.Framework.Servers;
31 31
32namespace OpenSim.Grid.GridServer 32namespace OpenSim.Grid.GridServer
33{ 33{
34 public interface IGridMessagingModule 34 public interface IGridMessagingMapper
35 { 35 {
36 List<MessageServerInfo> MessageServers { get; } 36 List<MessageServerInfo> GetMessageServersList();
37 } 37 void RegisterMessageServer(MessageServerInfo m);
38} 38 void DeRegisterMessageServer(MessageServerInfo m);
39 }
40}