diff options
author | MW | 2009-02-21 18:41:28 +0000 |
---|---|---|
committer | MW | 2009-02-21 18:41:28 +0000 |
commit | e77b5d990d275f3a900d844e955bb92f6dba08aa (patch) | |
tree | 8dc84f9dbc540e13efc0f243fdb9eed1a7ee6b61 /OpenSim | |
parent | Thank you kindly, DoranZemlja for a patch that: (diff) | |
download | opensim-SC-e77b5d990d275f3a900d844e955bb92f6dba08aa.zip opensim-SC-e77b5d990d275f3a900d844e955bb92f6dba08aa.tar.gz opensim-SC-e77b5d990d275f3a900d844e955bb92f6dba08aa.tar.bz2 opensim-SC-e77b5d990d275f3a900d844e955bb92f6dba08aa.tar.xz |
More Grid server refactoring
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Grid/GridServer/GridDBService.cs | 2 | ||||
-rw-r--r-- | OpenSim/Grid/GridServer/GridMessagingModule.cs | 16 | ||||
-rw-r--r-- | OpenSim/Grid/GridServer/GridRestModule.cs | 15 | ||||
-rw-r--r-- | OpenSim/Grid/GridServer/GridServerBase.cs | 22 | ||||
-rw-r--r-- | OpenSim/Grid/GridServer/GridXmlRpcModule.cs | 27 | ||||
-rw-r--r-- | OpenSim/Grid/GridServer/IUGAIMCore.cs (renamed from OpenSim/Grid/GridServer/IGridCore.cs) | 2 |
6 files changed, 61 insertions, 23 deletions
diff --git a/OpenSim/Grid/GridServer/GridDBService.cs b/OpenSim/Grid/GridServer/GridDBService.cs index 94c8dcd..cc244a9 100644 --- a/OpenSim/Grid/GridServer/GridDBService.cs +++ b/OpenSim/Grid/GridServer/GridDBService.cs | |||
@@ -197,7 +197,7 @@ namespace OpenSim.Grid.GridServer | |||
197 | return regions; | 197 | return regions; |
198 | } | 198 | } |
199 | 199 | ||
200 | public DataResponse LoginRegion(RegionProfileData sim, RegionProfileData existingSim) | 200 | public DataResponse AddUpdateRegion(RegionProfileData sim, RegionProfileData existingSim) |
201 | { | 201 | { |
202 | DataResponse insertResponse = DataResponse.RESPONSE_ERROR; | 202 | DataResponse insertResponse = DataResponse.RESPONSE_ERROR; |
203 | foreach (IGridDataPlugin plugin in _plugins) | 203 | foreach (IGridDataPlugin plugin in _plugins) |
diff --git a/OpenSim/Grid/GridServer/GridMessagingModule.cs b/OpenSim/Grid/GridServer/GridMessagingModule.cs index 040f4e0..6d9a723 100644 --- a/OpenSim/Grid/GridServer/GridMessagingModule.cs +++ b/OpenSim/Grid/GridServer/GridMessagingModule.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Grid.GridServer | |||
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 | ||
44 | protected GridDBService m_gridDBService; | 44 | protected GridDBService m_gridDBService; |
45 | protected IGridCore m_gridCore; | 45 | protected IUGAIMCore m_gridCore; |
46 | 46 | ||
47 | protected GridConfig m_config; | 47 | protected GridConfig m_config; |
48 | 48 | ||
@@ -65,19 +65,29 @@ namespace OpenSim.Grid.GridServer | |||
65 | { | 65 | { |
66 | } | 66 | } |
67 | 67 | ||
68 | public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) | 68 | public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) |
69 | { | 69 | { |
70 | m_opensimVersion = opensimVersion; | 70 | m_opensimVersion = opensimVersion; |
71 | m_gridDBService = gridDBService; | 71 | m_gridDBService = gridDBService; |
72 | m_gridCore = gridCore; | 72 | m_gridCore = gridCore; |
73 | m_config = config; | 73 | m_config = config; |
74 | RegisterHandlers(); | ||
75 | } | ||
76 | |||
77 | public void PostInitialise() | ||
78 | { | ||
79 | |||
80 | } | ||
81 | |||
82 | public void RegisterHandlers() | ||
83 | { | ||
84 | //have these in separate method as some servers restart the http server and reregister all the handlers. | ||
74 | m_httpServer = m_gridCore.GetHttpServer(); | 85 | m_httpServer = m_gridCore.GetHttpServer(); |
75 | 86 | ||
76 | m_gridCore.RegisterInterface<IGridMessagingModule>(this); | 87 | m_gridCore.RegisterInterface<IGridMessagingModule>(this); |
77 | // Message Server ---> Grid Server | 88 | // Message Server ---> Grid Server |
78 | m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer); | 89 | m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer); |
79 | m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer); | 90 | m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer); |
80 | |||
81 | } | 91 | } |
82 | 92 | ||
83 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) | 93 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) |
diff --git a/OpenSim/Grid/GridServer/GridRestModule.cs b/OpenSim/Grid/GridServer/GridRestModule.cs index d0bcbe8..5894c4b 100644 --- a/OpenSim/Grid/GridServer/GridRestModule.cs +++ b/OpenSim/Grid/GridServer/GridRestModule.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Grid.GridServer | |||
45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | private GridDBService m_gridDBService; | 47 | private GridDBService m_gridDBService; |
48 | private IGridCore m_gridCore; | 48 | private IUGAIMCore m_gridCore; |
49 | 49 | ||
50 | protected GridConfig m_config; | 50 | protected GridConfig m_config; |
51 | 51 | ||
@@ -66,12 +66,23 @@ namespace OpenSim.Grid.GridServer | |||
66 | { | 66 | { |
67 | } | 67 | } |
68 | 68 | ||
69 | public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) | 69 | public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) |
70 | { | 70 | { |
71 | m_opensimVersion = opensimVersion; | 71 | m_opensimVersion = opensimVersion; |
72 | m_gridDBService = gridDBService; | 72 | m_gridDBService = gridDBService; |
73 | m_gridCore = gridCore; | 73 | m_gridCore = gridCore; |
74 | m_config = config; | 74 | m_config = config; |
75 | RegisterHandlers(); | ||
76 | } | ||
77 | |||
78 | public void PostInitialise() | ||
79 | { | ||
80 | |||
81 | } | ||
82 | |||
83 | public void RegisterHandlers() | ||
84 | { | ||
85 | //have these in separate method as some servers restart the http server and reregister all the handlers. | ||
75 | m_httpServer = m_gridCore.GetHttpServer(); | 86 | m_httpServer = m_gridCore.GetHttpServer(); |
76 | 87 | ||
77 | m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", RestGetSimMethod)); | 88 | m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", RestGetSimMethod)); |
diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 6c3584d..f118c90 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Grid.GridServer | |||
39 | { | 39 | { |
40 | /// <summary> | 40 | /// <summary> |
41 | /// </summary> | 41 | /// </summary> |
42 | public class GridServerBase : BaseOpenSimServer, IGridCore | 42 | public class GridServerBase : BaseOpenSimServer, IUGAIMCore |
43 | { | 43 | { |
44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
@@ -163,6 +163,10 @@ namespace OpenSim.Grid.GridServer | |||
163 | 163 | ||
164 | m_gridRestModule = new GridRestModule(); | 164 | m_gridRestModule = new GridRestModule(); |
165 | m_gridRestModule.Initialise(m_version, m_gridDBService, this, m_config); | 165 | m_gridRestModule.Initialise(m_version, m_gridDBService, this, m_config); |
166 | |||
167 | m_gridMessageModule.PostInitialise(); | ||
168 | m_gridXmlRpcModule.PostInitialise(); | ||
169 | m_gridRestModule.PostInitialise(); | ||
166 | } | 170 | } |
167 | 171 | ||
168 | public void CheckSims(object sender, ElapsedEventArgs e) | 172 | public void CheckSims(object sender, ElapsedEventArgs e) |
@@ -207,8 +211,8 @@ namespace OpenSim.Grid.GridServer | |||
207 | foreach (IGridPlugin plugin in m_plugins) plugin.Dispose(); | 211 | foreach (IGridPlugin plugin in m_plugins) plugin.Dispose(); |
208 | } | 212 | } |
209 | 213 | ||
210 | #region IGridCore | 214 | #region IUGAIMCore |
211 | private readonly Dictionary<Type, object> m_gridInterfaces = new Dictionary<Type, object>(); | 215 | private readonly Dictionary<Type, object> m_moduleInterfaces = new Dictionary<Type, object>(); |
212 | 216 | ||
213 | /// <summary> | 217 | /// <summary> |
214 | /// Register an Module interface. | 218 | /// Register an Module interface. |
@@ -217,20 +221,20 @@ namespace OpenSim.Grid.GridServer | |||
217 | /// <param name="iface"></param> | 221 | /// <param name="iface"></param> |
218 | public void RegisterInterface<T>(T iface) | 222 | public void RegisterInterface<T>(T iface) |
219 | { | 223 | { |
220 | lock (m_gridInterfaces) | 224 | lock (m_moduleInterfaces) |
221 | { | 225 | { |
222 | if (!m_gridInterfaces.ContainsKey(typeof(T))) | 226 | if (!m_moduleInterfaces.ContainsKey(typeof(T))) |
223 | { | 227 | { |
224 | m_gridInterfaces.Add(typeof(T), iface); | 228 | m_moduleInterfaces.Add(typeof(T), iface); |
225 | } | 229 | } |
226 | } | 230 | } |
227 | } | 231 | } |
228 | 232 | ||
229 | public bool TryGet<T>(out T iface) | 233 | public bool TryGet<T>(out T iface) |
230 | { | 234 | { |
231 | if (m_gridInterfaces.ContainsKey(typeof(T))) | 235 | if (m_moduleInterfaces.ContainsKey(typeof(T))) |
232 | { | 236 | { |
233 | iface = (T)m_gridInterfaces[typeof(T)]; | 237 | iface = (T)m_moduleInterfaces[typeof(T)]; |
234 | return true; | 238 | return true; |
235 | } | 239 | } |
236 | iface = default(T); | 240 | iface = default(T); |
@@ -239,7 +243,7 @@ namespace OpenSim.Grid.GridServer | |||
239 | 243 | ||
240 | public T Get<T>() | 244 | public T Get<T>() |
241 | { | 245 | { |
242 | return (T)m_gridInterfaces[typeof(T)]; | 246 | return (T)m_moduleInterfaces[typeof(T)]; |
243 | } | 247 | } |
244 | 248 | ||
245 | public BaseHttpServer GetHttpServer() | 249 | public BaseHttpServer GetHttpServer() |
diff --git a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs index c2cd1d6..86df81c 100644 --- a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs +++ b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Grid.GridServer | |||
46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | private GridDBService m_gridDBService; | 48 | private GridDBService m_gridDBService; |
49 | private IGridCore m_gridCore; | 49 | private IUGAIMCore m_gridCore; |
50 | 50 | ||
51 | protected GridConfig m_config; | 51 | protected GridConfig m_config; |
52 | 52 | ||
@@ -67,12 +67,23 @@ namespace OpenSim.Grid.GridServer | |||
67 | { | 67 | { |
68 | } | 68 | } |
69 | 69 | ||
70 | public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) | 70 | public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) |
71 | { | 71 | { |
72 | m_opensimVersion = opensimVersion; | 72 | m_opensimVersion = opensimVersion; |
73 | m_gridDBService = gridDBService; | 73 | m_gridDBService = gridDBService; |
74 | m_gridCore = gridCore; | 74 | m_gridCore = gridCore; |
75 | m_config = config; | 75 | m_config = config; |
76 | RegisterHandlers(); | ||
77 | } | ||
78 | |||
79 | public void PostInitialise() | ||
80 | { | ||
81 | |||
82 | } | ||
83 | |||
84 | public void RegisterHandlers() | ||
85 | { | ||
86 | //have these in separate method as some servers restart the http server and reregister all the handlers. | ||
76 | m_httpServer = m_gridCore.GetHttpServer(); | 87 | m_httpServer = m_gridCore.GetHttpServer(); |
77 | 88 | ||
78 | m_httpServer.AddXmlRPCHandler("simulator_login", XmlRpcSimulatorLoginMethod); | 89 | m_httpServer.AddXmlRPCHandler("simulator_login", XmlRpcSimulatorLoginMethod); |
@@ -81,7 +92,7 @@ namespace OpenSim.Grid.GridServer | |||
81 | m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod); | 92 | m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod); |
82 | m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod); | 93 | m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod); |
83 | } | 94 | } |
84 | 95 | ||
85 | /// <summary> | 96 | /// <summary> |
86 | /// Returns a XML String containing a list of the neighbouring regions | 97 | /// Returns a XML String containing a list of the neighbouring regions |
87 | /// </summary> | 98 | /// </summary> |
@@ -305,7 +316,7 @@ namespace OpenSim.Grid.GridServer | |||
305 | return e.XmlRpcErrorResponse; | 316 | return e.XmlRpcErrorResponse; |
306 | } | 317 | } |
307 | 318 | ||
308 | DataResponse insertResponse = m_gridDBService.LoginRegion(sim, existingSim); | 319 | DataResponse insertResponse = m_gridDBService.AddUpdateRegion(sim, existingSim); |
309 | 320 | ||
310 | switch (insertResponse) | 321 | switch (insertResponse) |
311 | { | 322 | { |
@@ -557,7 +568,7 @@ namespace OpenSim.Grid.GridServer | |||
557 | //TheSim = GetRegion(new UUID((string) requestData["UUID"])); | 568 | //TheSim = GetRegion(new UUID((string) requestData["UUID"])); |
558 | uuid = requestData["UUID"].ToString(); | 569 | uuid = requestData["UUID"].ToString(); |
559 | m_log.InfoFormat("[LOGOUT]: Logging out region: {0}", uuid); | 570 | m_log.InfoFormat("[LOGOUT]: Logging out region: {0}", uuid); |
560 | // logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); | 571 | // logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); |
561 | } | 572 | } |
562 | else | 573 | else |
563 | { | 574 | { |
@@ -849,13 +860,15 @@ namespace OpenSim.Grid.GridServer | |||
849 | } | 860 | } |
850 | private XmlRpcResponse m_xmlRpcErrorResponse; | 861 | private XmlRpcResponse m_xmlRpcErrorResponse; |
851 | 862 | ||
852 | public LoginException(string message, string xmlRpcMessage) : base(message) | 863 | public LoginException(string message, string xmlRpcMessage) |
864 | : base(message) | ||
853 | { | 865 | { |
854 | // FIXME: Might be neater to refactor and put the method inside here | 866 | // FIXME: Might be neater to refactor and put the method inside here |
855 | m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); | 867 | m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); |
856 | } | 868 | } |
857 | 869 | ||
858 | public LoginException(string message, string xmlRpcMessage, Exception e) : base(message, e) | 870 | public LoginException(string message, string xmlRpcMessage, Exception e) |
871 | : base(message, e) | ||
859 | { | 872 | { |
860 | // FIXME: Might be neater to refactor and put the method inside here | 873 | // FIXME: Might be neater to refactor and put the method inside here |
861 | m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); | 874 | m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); |
diff --git a/OpenSim/Grid/GridServer/IGridCore.cs b/OpenSim/Grid/GridServer/IUGAIMCore.cs index dd0d140..12cd19b 100644 --- a/OpenSim/Grid/GridServer/IGridCore.cs +++ b/OpenSim/Grid/GridServer/IUGAIMCore.cs | |||
@@ -3,7 +3,7 @@ using OpenSim.Framework.Servers; | |||
3 | 3 | ||
4 | namespace OpenSim.Grid.GridServer | 4 | namespace OpenSim.Grid.GridServer |
5 | { | 5 | { |
6 | public interface IGridCore | 6 | public interface IUGAIMCore |
7 | { | 7 | { |
8 | T Get<T>(); | 8 | T Get<T>(); |
9 | void RegisterInterface<T>(T iface); | 9 | void RegisterInterface<T>(T iface); |