diff options
author | Thomas Grimshaw | 2010-04-05 22:08:34 +0200 |
---|---|---|
committer | Thomas Grimshaw | 2010-04-05 22:08:34 +0200 |
commit | f34cc6b46949033803c79235b9d82da9bf9634dd (patch) | |
tree | d1117656803e210151e480b960184bc4524f129e | |
parent | Change land overlay to send group owned status properly (diff) | |
download | opensim-SC_OLD-f34cc6b46949033803c79235b9d82da9bf9634dd.zip opensim-SC_OLD-f34cc6b46949033803c79235b9d82da9bf9634dd.tar.gz opensim-SC_OLD-f34cc6b46949033803c79235b9d82da9bf9634dd.tar.bz2 opensim-SC_OLD-f34cc6b46949033803c79235b9d82da9bf9634dd.tar.xz |
Add a much cheaper agent count retrieval method. This is obsoleted by 0.7 so it can be reverted then.
4 files changed, 12 insertions, 4 deletions
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs index ed18207..dea166d 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs | |||
@@ -192,7 +192,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
192 | 192 | ||
193 | protected string RegionStats(OSHttpResponse httpResponse, Scene scene) | 193 | protected string RegionStats(OSHttpResponse httpResponse, Scene scene) |
194 | { | 194 | { |
195 | int users = scene.GetAvatars().Count; | 195 | int users = scene.GetRootAgentCount(); |
196 | int objects = scene.Entities.Count - users; | 196 | int objects = scene.Entities.Count - users; |
197 | 197 | ||
198 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); | 198 | RestXmlWriter rxw = new RestXmlWriter(new StringWriter()); |
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs index 5798286..82e9d9b 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETRegionInfoHandler.cs | |||
@@ -125,7 +125,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
125 | rxw.WriteString(s.RegionInfo.InternalEndPoint.ToString()); | 125 | rxw.WriteString(s.RegionInfo.InternalEndPoint.ToString()); |
126 | rxw.WriteEndAttribute(); | 126 | rxw.WriteEndAttribute(); |
127 | 127 | ||
128 | int users = s.GetAvatars().Count; | 128 | int users = s.GetRootAgentCount(); |
129 | rxw.WriteStartAttribute(String.Empty, "avatars", String.Empty); | 129 | rxw.WriteStartAttribute(String.Empty, "avatars", String.Empty); |
130 | rxw.WriteValue(users); | 130 | rxw.WriteValue(users); |
131 | rxw.WriteEndAttribute(); | 131 | rxw.WriteEndAttribute(); |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index ab0d397..e5e6fc9 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1523,7 +1523,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1523 | public void SaveTerrain() | 1523 | public void SaveTerrain() |
1524 | { | 1524 | { |
1525 | m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); | 1525 | m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); |
1526 | } | 1526 | } |
1527 | 1527 | ||
1528 | public void StoreWindlightProfile(RegionMeta7WindlightData wl) | 1528 | public void StoreWindlightProfile(RegionMeta7WindlightData wl) |
1529 | { | 1529 | { |
@@ -4339,6 +4339,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
4339 | } | 4339 | } |
4340 | 4340 | ||
4341 | /// <summary> | 4341 | /// <summary> |
4342 | /// Cheaply return the number of avatars in a region (without fetching a list object) | ||
4343 | /// </summary> | ||
4344 | public int GetRootAgentCount() | ||
4345 | { | ||
4346 | return m_sceneGraph.GetRootAgentCount(); | ||
4347 | } | ||
4348 | |||
4349 | /// <summary> | ||
4342 | /// Return a list of all ScenePresences in this region. This returns child agents as well as root agents. | 4350 | /// Return a list of all ScenePresences in this region. This returns child agents as well as root agents. |
4343 | /// This list is a new object, so it can be iterated over without locking. | 4351 | /// This list is a new object, so it can be iterated over without locking. |
4344 | /// </summary> | 4352 | /// </summary> |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 10ebf67..a76f386 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5266,7 +5266,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5266 | public LSL_Integer llGetRegionAgentCount() | 5266 | public LSL_Integer llGetRegionAgentCount() |
5267 | { | 5267 | { |
5268 | m_host.AddScriptLPS(1); | 5268 | m_host.AddScriptLPS(1); |
5269 | return new LSL_Integer(World.GetAvatars().Count); | 5269 | return new LSL_Integer(World.GetRootAgentCount()); |
5270 | } | 5270 | } |
5271 | 5271 | ||
5272 | public LSL_Vector llGetRegionCorner() | 5272 | public LSL_Vector llGetRegionCorner() |