diff options
Diffstat (limited to 'OpenSim/Data')
-rw-r--r-- | OpenSim/Data/RegionProfileData.cs | 81 | ||||
-rw-r--r-- | OpenSim/Data/RegionProfileService.cs | 94 |
2 files changed, 94 insertions, 81 deletions
diff --git a/OpenSim/Data/RegionProfileData.cs b/OpenSim/Data/RegionProfileData.cs index d01aaa0..0b757f3 100644 --- a/OpenSim/Data/RegionProfileData.cs +++ b/OpenSim/Data/RegionProfileData.cs | |||
@@ -131,87 +131,6 @@ namespace OpenSim.Data | |||
131 | /// </summary> | 131 | /// </summary> |
132 | public UUID originUUID; | 132 | public UUID originUUID; |
133 | 133 | ||
134 | /// <summary> | ||
135 | /// Request sim data based on arbitrary key/value | ||
136 | /// </summary> | ||
137 | private static RegionProfileData RequestSimData(Uri gridserver_url, string gridserver_sendkey, string keyField, string keyValue) | ||
138 | { | ||
139 | Hashtable requestData = new Hashtable(); | ||
140 | requestData[keyField] = keyValue; | ||
141 | requestData["authkey"] = gridserver_sendkey; | ||
142 | ArrayList SendParams = new ArrayList(); | ||
143 | SendParams.Add(requestData); | ||
144 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); | ||
145 | XmlRpcResponse GridResp = GridReq.Send(gridserver_url.ToString(), 3000); | ||
146 | |||
147 | Hashtable responseData = (Hashtable) GridResp.Value; | ||
148 | |||
149 | RegionProfileData simData = null; | ||
150 | |||
151 | if (!responseData.ContainsKey("error")) | ||
152 | { | ||
153 | simData = new RegionProfileData(); | ||
154 | simData.regionLocX = Convert.ToUInt32((string) responseData["region_locx"]); | ||
155 | simData.regionLocY = Convert.ToUInt32((string) responseData["region_locy"]); | ||
156 | simData.regionHandle = | ||
157 | Utils.UIntsToLong((simData.regionLocX * Constants.RegionSize), | ||
158 | (simData.regionLocY*Constants.RegionSize)); | ||
159 | simData.serverIP = (string) responseData["sim_ip"]; | ||
160 | simData.serverPort = Convert.ToUInt32((string) responseData["sim_port"]); | ||
161 | simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]); | ||
162 | simData.remotingPort = Convert.ToUInt32((string) responseData["remoting_port"]); | ||
163 | simData.serverURI = (string) responseData["server_uri"]; | ||
164 | simData.httpServerURI = "http://" + (string)responseData["sim_ip"] + ":" + simData.httpPort.ToString() + "/"; | ||
165 | simData.UUID = new UUID((string) responseData["region_UUID"]); | ||
166 | simData.regionName = (string) responseData["region_name"]; | ||
167 | } | ||
168 | |||
169 | return simData; | ||
170 | } | ||
171 | |||
172 | /// <summary> | ||
173 | /// Request sim profile information from a grid server, by Region UUID | ||
174 | /// </summary> | ||
175 | /// <param name="region_UUID">The region UUID to look for</param> | ||
176 | /// <param name="gridserver_url"></param> | ||
177 | /// <param name="gridserver_sendkey"></param> | ||
178 | /// <param name="gridserver_recvkey"></param> | ||
179 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
180 | /// <remarks>This method should be statics</remarks> | ||
181 | public static RegionProfileData RequestSimProfileData(UUID region_uuid, Uri gridserver_url, | ||
182 | string gridserver_sendkey, string gridserver_recvkey) | ||
183 | { | ||
184 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_UUID", region_uuid.Guid.ToString()); | ||
185 | } | ||
186 | |||
187 | /// <summary> | ||
188 | /// Request sim profile information from a grid server, by Region Handle | ||
189 | /// </summary> | ||
190 | /// <param name="region_handle">the region handle to look for</param> | ||
191 | /// <param name="gridserver_url"></param> | ||
192 | /// <param name="gridserver_sendkey"></param> | ||
193 | /// <param name="gridserver_recvkey"></param> | ||
194 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
195 | public static RegionProfileData RequestSimProfileData(ulong region_handle, Uri gridserver_url, | ||
196 | string gridserver_sendkey, string gridserver_recvkey) | ||
197 | { | ||
198 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_handle", region_handle.ToString()); | ||
199 | } | ||
200 | |||
201 | /// <summary> | ||
202 | /// Request sim profile information from a grid server, by Region Name | ||
203 | /// </summary> | ||
204 | /// <param name="region_handle">the region name to look for</param> | ||
205 | /// <param name="gridserver_url"></param> | ||
206 | /// <param name="gridserver_sendkey"></param> | ||
207 | /// <param name="gridserver_recvkey"></param> | ||
208 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
209 | public static RegionProfileData RequestSimProfileData(string regionName, Uri gridserver_url, | ||
210 | string gridserver_sendkey, string gridserver_recvkey) | ||
211 | { | ||
212 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_name_search", regionName ); | ||
213 | } | ||
214 | |||
215 | 134 | ||
216 | //Data Wrappers | 135 | //Data Wrappers |
217 | public string RegionName | 136 | public string RegionName |
diff --git a/OpenSim/Data/RegionProfileService.cs b/OpenSim/Data/RegionProfileService.cs new file mode 100644 index 0000000..1a73ed1 --- /dev/null +++ b/OpenSim/Data/RegionProfileService.cs | |||
@@ -0,0 +1,94 @@ | |||
1 | using System; | ||
2 | using System.Collections; | ||
3 | using System.Collections.Generic; | ||
4 | using System.Text; | ||
5 | using Nwc.XmlRpc; | ||
6 | using OpenMetaverse; | ||
7 | using OpenSim.Framework; | ||
8 | |||
9 | namespace OpenSim.Data | ||
10 | { | ||
11 | public class RegionProfileService | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Request sim data based on arbitrary key/value | ||
15 | /// </summary> | ||
16 | private static RegionProfileData RequestSimData(Uri gridserver_url, string gridserver_sendkey, string keyField, string keyValue) | ||
17 | { | ||
18 | Hashtable requestData = new Hashtable(); | ||
19 | requestData[keyField] = keyValue; | ||
20 | requestData["authkey"] = gridserver_sendkey; | ||
21 | ArrayList SendParams = new ArrayList(); | ||
22 | SendParams.Add(requestData); | ||
23 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); | ||
24 | XmlRpcResponse GridResp = GridReq.Send(gridserver_url.ToString(), 3000); | ||
25 | |||
26 | Hashtable responseData = (Hashtable) GridResp.Value; | ||
27 | |||
28 | RegionProfileData simData = null; | ||
29 | |||
30 | if (!responseData.ContainsKey("error")) | ||
31 | { | ||
32 | simData = new RegionProfileData(); | ||
33 | simData.regionLocX = Convert.ToUInt32((string) responseData["region_locx"]); | ||
34 | simData.regionLocY = Convert.ToUInt32((string) responseData["region_locy"]); | ||
35 | simData.regionHandle = | ||
36 | Utils.UIntsToLong((simData.regionLocX * Constants.RegionSize), | ||
37 | (simData.regionLocY*Constants.RegionSize)); | ||
38 | simData.serverIP = (string) responseData["sim_ip"]; | ||
39 | simData.serverPort = Convert.ToUInt32((string) responseData["sim_port"]); | ||
40 | simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]); | ||
41 | simData.remotingPort = Convert.ToUInt32((string) responseData["remoting_port"]); | ||
42 | simData.serverURI = (string) responseData["server_uri"]; | ||
43 | simData.httpServerURI = "http://" + (string)responseData["sim_ip"] + ":" + simData.httpPort.ToString() + "/"; | ||
44 | simData.UUID = new UUID((string) responseData["region_UUID"]); | ||
45 | simData.regionName = (string) responseData["region_name"]; | ||
46 | } | ||
47 | |||
48 | return simData; | ||
49 | } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Request sim profile information from a grid server, by Region UUID | ||
53 | /// </summary> | ||
54 | /// <param name="region_UUID">The region UUID to look for</param> | ||
55 | /// <param name="gridserver_url"></param> | ||
56 | /// <param name="gridserver_sendkey"></param> | ||
57 | /// <param name="gridserver_recvkey"></param> | ||
58 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
59 | /// <remarks>This method should be statics</remarks> | ||
60 | public static RegionProfileData RequestSimProfileData(UUID region_uuid, Uri gridserver_url, | ||
61 | string gridserver_sendkey, string gridserver_recvkey) | ||
62 | { | ||
63 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_UUID", region_uuid.Guid.ToString()); | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Request sim profile information from a grid server, by Region Handle | ||
68 | /// </summary> | ||
69 | /// <param name="region_handle">the region handle to look for</param> | ||
70 | /// <param name="gridserver_url"></param> | ||
71 | /// <param name="gridserver_sendkey"></param> | ||
72 | /// <param name="gridserver_recvkey"></param> | ||
73 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
74 | public static RegionProfileData RequestSimProfileData(ulong region_handle, Uri gridserver_url, | ||
75 | string gridserver_sendkey, string gridserver_recvkey) | ||
76 | { | ||
77 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_handle", region_handle.ToString()); | ||
78 | } | ||
79 | |||
80 | /// <summary> | ||
81 | /// Request sim profile information from a grid server, by Region Name | ||
82 | /// </summary> | ||
83 | /// <param name="region_handle">the region name to look for</param> | ||
84 | /// <param name="gridserver_url"></param> | ||
85 | /// <param name="gridserver_sendkey"></param> | ||
86 | /// <param name="gridserver_recvkey"></param> | ||
87 | /// <returns>The sim profile. Null if there was a request failure</returns> | ||
88 | public static RegionProfileData RequestSimProfileData(string regionName, Uri gridserver_url, | ||
89 | string gridserver_sendkey, string gridserver_recvkey) | ||
90 | { | ||
91 | return RequestSimData(gridserver_url, gridserver_sendkey, "region_name_search", regionName ); | ||
92 | } | ||
93 | } | ||
94 | } | ||