diff options
author | Justin Clark-Casey (justincc) | 2014-03-18 20:09:15 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-03-18 20:09:15 +0000 |
commit | d5f5649750c9f22d2d160d581fa35f422a9ad760 (patch) | |
tree | 2ee197c5d60894663388047839ee9fa0e143d6d9 /OpenSim/Services/Connectors/MapImage | |
parent | Lock m_syncRoot on DoubleQueue.Count. This is not documented as a thread-saf... (diff) | |
parent | Add delete maptile ability to MapImageService - yet untested (diff) | |
download | opensim-SC-d5f5649750c9f22d2d160d581fa35f422a9ad760.zip opensim-SC-d5f5649750c9f22d2d160d581fa35f422a9ad760.tar.gz opensim-SC-d5f5649750c9f22d2d160d581fa35f422a9ad760.tar.bz2 opensim-SC-d5f5649750c9f22d2d160d581fa35f422a9ad760.tar.xz |
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Services/Connectors/MapImage')
-rw-r--r-- | OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs b/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs index cc485f7..725204d 100644 --- a/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs +++ b/OpenSim/Services/Connectors/MapImage/MapImageServicesConnector.cs | |||
@@ -86,6 +86,66 @@ namespace OpenSim.Services.Connectors | |||
86 | m_ServerURI = serviceURI.TrimEnd('/'); | 86 | m_ServerURI = serviceURI.TrimEnd('/'); |
87 | } | 87 | } |
88 | 88 | ||
89 | public bool RemoveMapTile(int x, int y, out string reason) | ||
90 | { | ||
91 | reason = string.Empty; | ||
92 | int tickstart = Util.EnvironmentTickCount(); | ||
93 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | ||
94 | sendData["X"] = x.ToString(); | ||
95 | sendData["Y"] = y.ToString(); | ||
96 | |||
97 | string reqString = ServerUtils.BuildQueryString(sendData); | ||
98 | string uri = m_ServerURI + "/removemap"; | ||
99 | |||
100 | try | ||
101 | { | ||
102 | string reply = SynchronousRestFormsRequester.MakeRequest("POST", | ||
103 | uri, | ||
104 | reqString); | ||
105 | if (reply != string.Empty) | ||
106 | { | ||
107 | Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply); | ||
108 | |||
109 | if (replyData.ContainsKey("Result") && (replyData["Result"].ToString().ToLower() == "success")) | ||
110 | { | ||
111 | return true; | ||
112 | } | ||
113 | else if (replyData.ContainsKey("Result") && (replyData["Result"].ToString().ToLower() == "failure")) | ||
114 | { | ||
115 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: Delete failed: {0}", replyData["Message"].ToString()); | ||
116 | reason = replyData["Message"].ToString(); | ||
117 | return false; | ||
118 | } | ||
119 | else if (!replyData.ContainsKey("Result")) | ||
120 | { | ||
121 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: reply data does not contain result field"); | ||
122 | } | ||
123 | else | ||
124 | { | ||
125 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: unexpected result {0}", replyData["Result"].ToString()); | ||
126 | reason = "Unexpected result " + replyData["Result"].ToString(); | ||
127 | } | ||
128 | |||
129 | } | ||
130 | else | ||
131 | { | ||
132 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: Map post received null reply"); | ||
133 | } | ||
134 | } | ||
135 | catch (Exception e) | ||
136 | { | ||
137 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: Exception when contacting map server at {0}: {1}", uri, e.Message); | ||
138 | } | ||
139 | finally | ||
140 | { | ||
141 | // This just dumps a warning for any operation that takes more than 100 ms | ||
142 | int tickdiff = Util.EnvironmentTickCountSubtract(tickstart); | ||
143 | m_log.DebugFormat("[MAP IMAGE CONNECTOR]: map tile deleted in {0}ms", tickdiff); | ||
144 | } | ||
145 | |||
146 | return false; | ||
147 | } | ||
148 | |||
89 | public bool AddMapTile(int x, int y, byte[] jpgData, out string reason) | 149 | public bool AddMapTile(int x, int y, byte[] jpgData, out string reason) |
90 | { | 150 | { |
91 | reason = string.Empty; | 151 | reason = string.Empty; |