diff options
-rw-r--r-- | OpenSim/Framework/IPrimCounts.cs | 24 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | 39 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs | 8 |
3 files changed, 70 insertions, 1 deletions
diff --git a/OpenSim/Framework/IPrimCounts.cs b/OpenSim/Framework/IPrimCounts.cs index 7d362c5..8ae57fc 100644 --- a/OpenSim/Framework/IPrimCounts.cs +++ b/OpenSim/Framework/IPrimCounts.cs | |||
@@ -31,10 +31,34 @@ namespace OpenSim.Framework | |||
31 | { | 31 | { |
32 | public interface IPrimCounts | 32 | public interface IPrimCounts |
33 | { | 33 | { |
34 | /// <summary> | ||
35 | /// Parcel owner owned prims | ||
36 | /// </summary> | ||
34 | int Owner { get; } | 37 | int Owner { get; } |
38 | |||
39 | /// <summary> | ||
40 | /// Parcel group owned prims | ||
41 | /// </summary> | ||
35 | int Group { get; } | 42 | int Group { get; } |
43 | |||
44 | /// <summary> | ||
45 | /// Prims owned by others (not parcel owner or parcel group). | ||
46 | /// </summary> | ||
36 | int Others { get; } | 47 | int Others { get; } |
48 | |||
49 | /// <summary> | ||
50 | /// Total prims on the parcel. | ||
51 | /// </summary> | ||
52 | int Total { get; } | ||
53 | |||
54 | /// <summary> | ||
55 | /// Prims on the simulator that are owned by the parcel owner, even if they are in other parcels. | ||
56 | /// </summary> | ||
37 | int Simulator { get; } | 57 | int Simulator { get; } |
58 | |||
59 | /// <summary> | ||
60 | /// Prims per individual users. | ||
61 | /// </summary> | ||
38 | IUserPrimCounts Users { get; } | 62 | IUserPrimCounts Users { get; } |
39 | } | 63 | } |
40 | 64 | ||
diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 72115a8..2de5c16 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | |||
@@ -324,6 +324,37 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
324 | 324 | ||
325 | return count; | 325 | return count; |
326 | } | 326 | } |
327 | |||
328 | /// <summary> | ||
329 | /// Get the total count of owner, group and others prims on the parcel. | ||
330 | /// FIXME: Need to do selected prims once this is reimplemented. | ||
331 | /// </summary> | ||
332 | /// <param name="parcelID"></param> | ||
333 | /// <returns></returns> | ||
334 | public int GetTotalCount(UUID parcelID) | ||
335 | { | ||
336 | int count = 0; | ||
337 | |||
338 | lock (m_TaintLock) | ||
339 | { | ||
340 | if (m_Tainted) | ||
341 | Recount(); | ||
342 | |||
343 | ParcelCounts counts; | ||
344 | if (m_ParcelCounts.TryGetValue(parcelID, out counts)) | ||
345 | { | ||
346 | count = counts.Owner; | ||
347 | count += counts.Group; | ||
348 | count += counts.Others; | ||
349 | } | ||
350 | } | ||
351 | |||
352 | m_log.DebugFormat( | ||
353 | "[PRIM COUNT MODULE]: GetTotalCount for parcel {0} in {1} returning {2}", | ||
354 | parcelID, m_Scene.RegionInfo.RegionName, count); | ||
355 | |||
356 | return count; | ||
357 | } | ||
327 | 358 | ||
328 | /// <summary> | 359 | /// <summary> |
329 | /// Get the number of prims that are in the entire simulator for the owner of this parcel. | 360 | /// Get the number of prims that are in the entire simulator for the owner of this parcel. |
@@ -457,6 +488,14 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
457 | return m_Parent.GetOthersCount(m_ParcelID); | 488 | return m_Parent.GetOthersCount(m_ParcelID); |
458 | } | 489 | } |
459 | } | 490 | } |
491 | |||
492 | public int Total | ||
493 | { | ||
494 | get | ||
495 | { | ||
496 | return m_Parent.GetTotalCount(m_ParcelID); | ||
497 | } | ||
498 | } | ||
460 | 499 | ||
461 | public int Simulator | 500 | public int Simulator |
462 | { | 501 | { |
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index dd55f98..58bd841 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs | |||
@@ -78,9 +78,10 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
78 | Assert.That(pc.Owner, Is.EqualTo(0)); | 78 | Assert.That(pc.Owner, Is.EqualTo(0)); |
79 | Assert.That(pc.Group, Is.EqualTo(0)); | 79 | Assert.That(pc.Group, Is.EqualTo(0)); |
80 | Assert.That(pc.Others, Is.EqualTo(0)); | 80 | Assert.That(pc.Others, Is.EqualTo(0)); |
81 | Assert.That(pc.Total, Is.EqualTo(0)); | ||
81 | Assert.That(pc.Users[m_userId], Is.EqualTo(0)); | 82 | Assert.That(pc.Users[m_userId], Is.EqualTo(0)); |
82 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 83 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
83 | Assert.That(pc.Simulator, Is.EqualTo(0)); | 84 | Assert.That(pc.Simulator, Is.EqualTo(0)); |
84 | 85 | ||
85 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); | 86 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); |
86 | m_scene.AddNewSceneObject(sog, false); | 87 | m_scene.AddNewSceneObject(sog, false); |
@@ -88,6 +89,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
88 | Assert.That(pc.Owner, Is.EqualTo(3)); | 89 | Assert.That(pc.Owner, Is.EqualTo(3)); |
89 | Assert.That(pc.Group, Is.EqualTo(0)); | 90 | Assert.That(pc.Group, Is.EqualTo(0)); |
90 | Assert.That(pc.Others, Is.EqualTo(0)); | 91 | Assert.That(pc.Others, Is.EqualTo(0)); |
92 | Assert.That(pc.Total, Is.EqualTo(3)); | ||
91 | Assert.That(pc.Users[m_userId], Is.EqualTo(3)); | 93 | Assert.That(pc.Users[m_userId], Is.EqualTo(3)); |
92 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 94 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
93 | Assert.That(pc.Simulator, Is.EqualTo(3)); | 95 | Assert.That(pc.Simulator, Is.EqualTo(3)); |
@@ -99,6 +101,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
99 | Assert.That(pc.Owner, Is.EqualTo(5)); | 101 | Assert.That(pc.Owner, Is.EqualTo(5)); |
100 | Assert.That(pc.Group, Is.EqualTo(0)); | 102 | Assert.That(pc.Group, Is.EqualTo(0)); |
101 | Assert.That(pc.Others, Is.EqualTo(0)); | 103 | Assert.That(pc.Others, Is.EqualTo(0)); |
104 | Assert.That(pc.Total, Is.EqualTo(5)); | ||
102 | Assert.That(pc.Users[m_userId], Is.EqualTo(5)); | 105 | Assert.That(pc.Users[m_userId], Is.EqualTo(5)); |
103 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 106 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
104 | Assert.That(pc.Simulator, Is.EqualTo(5)); | 107 | Assert.That(pc.Simulator, Is.EqualTo(5)); |
@@ -122,6 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
122 | Assert.That(pc.Owner, Is.EqualTo(6)); | 125 | Assert.That(pc.Owner, Is.EqualTo(6)); |
123 | Assert.That(pc.Group, Is.EqualTo(0)); | 126 | Assert.That(pc.Group, Is.EqualTo(0)); |
124 | Assert.That(pc.Others, Is.EqualTo(0)); | 127 | Assert.That(pc.Others, Is.EqualTo(0)); |
128 | Assert.That(pc.Total, Is.EqualTo(6)); | ||
125 | Assert.That(pc.Users[m_userId], Is.EqualTo(6)); | 129 | Assert.That(pc.Users[m_userId], Is.EqualTo(6)); |
126 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 130 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
127 | Assert.That(pc.Simulator, Is.EqualTo(6)); | 131 | Assert.That(pc.Simulator, Is.EqualTo(6)); |
@@ -146,6 +150,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
146 | Assert.That(pc.Owner, Is.EqualTo(1)); | 150 | Assert.That(pc.Owner, Is.EqualTo(1)); |
147 | Assert.That(pc.Group, Is.EqualTo(0)); | 151 | Assert.That(pc.Group, Is.EqualTo(0)); |
148 | Assert.That(pc.Others, Is.EqualTo(0)); | 152 | Assert.That(pc.Others, Is.EqualTo(0)); |
153 | Assert.That(pc.Total, Is.EqualTo(1)); | ||
149 | Assert.That(pc.Users[m_userId], Is.EqualTo(1)); | 154 | Assert.That(pc.Users[m_userId], Is.EqualTo(1)); |
150 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 155 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
151 | Assert.That(pc.Simulator, Is.EqualTo(1)); | 156 | Assert.That(pc.Simulator, Is.EqualTo(1)); |
@@ -168,6 +173,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
168 | Assert.That(pc.Owner, Is.EqualTo(3)); | 173 | Assert.That(pc.Owner, Is.EqualTo(3)); |
169 | Assert.That(pc.Group, Is.EqualTo(0)); | 174 | Assert.That(pc.Group, Is.EqualTo(0)); |
170 | Assert.That(pc.Others, Is.EqualTo(0)); | 175 | Assert.That(pc.Others, Is.EqualTo(0)); |
176 | Assert.That(pc.Total, Is.EqualTo(3)); | ||
171 | Assert.That(pc.Users[m_userId], Is.EqualTo(3)); | 177 | Assert.That(pc.Users[m_userId], Is.EqualTo(3)); |
172 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); | 178 | Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); |
173 | Assert.That(pc.Simulator, Is.EqualTo(3)); | 179 | Assert.That(pc.Simulator, Is.EqualTo(3)); |