diff options
Diffstat (limited to 'OpenSim/OpenSim.Region/Caps.cs')
-rw-r--r-- | OpenSim/OpenSim.Region/Caps.cs | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/OpenSim/OpenSim.Region/Caps.cs b/OpenSim/OpenSim.Region/Caps.cs new file mode 100644 index 0000000..c672d29 --- /dev/null +++ b/OpenSim/OpenSim.Region/Caps.cs | |||
@@ -0,0 +1,98 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | using OpenSim.Servers; | ||
5 | using libsecondlife; | ||
6 | |||
7 | namespace OpenSim.Region | ||
8 | { | ||
9 | public class Caps | ||
10 | { | ||
11 | private string httpListenerAddress; | ||
12 | private uint httpListenPort; | ||
13 | private string MainPath = "00334-0000/"; | ||
14 | private string MapLayerPath = "00334-0001/"; | ||
15 | private BaseHttpServer httpListener; | ||
16 | |||
17 | public Caps(BaseHttpServer httpServer, string httpListen, uint httpPort) | ||
18 | { | ||
19 | httpListener = httpServer; | ||
20 | httpListenerAddress = httpListen; | ||
21 | httpListenPort = httpPort; | ||
22 | } | ||
23 | |||
24 | /// <summary> | ||
25 | /// | ||
26 | /// </summary> | ||
27 | public void RegisterHandlers() | ||
28 | { | ||
29 | Console.WriteLine("registering caps handlers"); | ||
30 | httpListener.AddRestHandler("POST", "/CAPS/" + MainPath, CapsRequest); | ||
31 | httpListener.AddRestHandler("POST", "/CAPS/" + MapLayerPath, MapLayer); | ||
32 | } | ||
33 | |||
34 | /// <summary> | ||
35 | /// | ||
36 | /// </summary> | ||
37 | /// <param name="request"></param> | ||
38 | /// <param name="path"></param> | ||
39 | /// <param name="param"></param> | ||
40 | /// <returns></returns> | ||
41 | public string CapsRequest(string request, string path, string param) | ||
42 | { | ||
43 | Console.WriteLine("Caps request " + request); | ||
44 | string result = "<llsd><map>"; | ||
45 | result += this.GetCapabilities(); | ||
46 | result += "</map></llsd>"; | ||
47 | return result; | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// | ||
52 | /// </summary> | ||
53 | /// <returns></returns> | ||
54 | protected string GetCapabilities() | ||
55 | { | ||
56 | string capURLS = "<key>MapLayer</key><string>http://" + httpListenerAddress + ":" + httpListenPort.ToString() + "/CAPS/" + MapLayerPath + "</string>"; | ||
57 | return capURLS; | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// | ||
62 | /// </summary> | ||
63 | /// <param name="request"></param> | ||
64 | /// <param name="path"></param> | ||
65 | /// <param name="param"></param> | ||
66 | /// <returns></returns> | ||
67 | public string MapLayer(string request, string path, string param) | ||
68 | { | ||
69 | Console.WriteLine("Caps MapLayer request " + request); | ||
70 | string res = "<llsd><map><key>AgentData</key><map><key>Flags</key><integer>0</integer></map><key>LayerData</key><array>"; | ||
71 | res += this.BuildLLSDMapLayerResponse(); | ||
72 | res += "</array></map></llsd>"; | ||
73 | return res; | ||
74 | } | ||
75 | |||
76 | /// <summary> | ||
77 | /// | ||
78 | /// </summary> | ||
79 | /// <returns></returns> | ||
80 | protected string BuildLLSDMapLayerResponse() | ||
81 | { | ||
82 | int left; | ||
83 | int right; | ||
84 | int top; | ||
85 | int bottom; | ||
86 | LLUUID image = null; | ||
87 | |||
88 | left = 500; | ||
89 | bottom = 500; | ||
90 | top = 1500; | ||
91 | right = 1500; | ||
92 | image = new LLUUID("00000000-0000-0000-9999-000000000006"); | ||
93 | |||
94 | string res= "<map><key>Left</key><integer>"+left+"</integer><key>Bottom</key><integer>"+bottom +"</integer><key>Top</key><integer>"+top+"</integer><key>Right</key><integer>"+right+"</integer><key>ImageID</key><uuid>"+image.ToStringHyphenated()+"</uuid></map>"; | ||
95 | return res; | ||
96 | } | ||
97 | } | ||
98 | } | ||