aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/GridServer/GridMessagingModule.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Grid/GridServer/GridMessagingModule.cs43
1 files changed, 31 insertions, 12 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}