aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Types/UpdateQueue.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Types/UpdateQueue.cs158
1 files changed, 79 insertions, 79 deletions
diff --git a/OpenSim/Region/Environment/Types/UpdateQueue.cs b/OpenSim/Region/Environment/Types/UpdateQueue.cs
index b21bcb6..442e9d5 100644
--- a/OpenSim/Region/Environment/Types/UpdateQueue.cs
+++ b/OpenSim/Region/Environment/Types/UpdateQueue.cs
@@ -1,79 +1,79 @@
1/* 1/*
2* Copyright (c) Contributors, http://opensimulator.org/ 2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders. 3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4* 4*
5* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright 7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer. 8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the 12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products 13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
15* 15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26* 26*
27*/ 27*/
28 28
29using System.Collections.Generic; 29using System.Collections.Generic;
30using libsecondlife; 30using libsecondlife;
31using OpenSim.Region.Environment.Scenes; 31using OpenSim.Region.Environment.Scenes;
32 32
33namespace OpenSim.Region.Environment.Types 33namespace OpenSim.Region.Environment.Types
34{ 34{
35 public class UpdateQueue 35 public class UpdateQueue
36 { 36 {
37 private Queue<SceneObjectPart> m_queue; 37 private Queue<SceneObjectPart> m_queue;
38 38
39 private List<LLUUID> m_ids; 39 private List<LLUUID> m_ids;
40 40
41 public int Count 41 public int Count
42 { 42 {
43 get { return m_queue.Count; } 43 get { return m_queue.Count; }
44 } 44 }
45 45
46 public UpdateQueue() 46 public UpdateQueue()
47 { 47 {
48 m_queue = new Queue<SceneObjectPart>(); 48 m_queue = new Queue<SceneObjectPart>();
49 m_ids = new List<LLUUID>(); 49 m_ids = new List<LLUUID>();
50 } 50 }
51 51
52 public void Enqueue(SceneObjectPart part) 52 public void Enqueue(SceneObjectPart part)
53 { 53 {
54 lock (m_ids) 54 lock (m_ids)
55 { 55 {
56 if (!m_ids.Contains(part.UUID)) 56 if (!m_ids.Contains(part.UUID))
57 { 57 {
58 m_ids.Add(part.UUID); 58 m_ids.Add(part.UUID);
59 m_queue.Enqueue(part); 59 m_queue.Enqueue(part);
60 } 60 }
61 } 61 }
62 } 62 }
63 63
64 public SceneObjectPart Dequeue() 64 public SceneObjectPart Dequeue()
65 { 65 {
66 SceneObjectPart part = null; 66 SceneObjectPart part = null;
67 if (m_queue.Count > 0) 67 if (m_queue.Count > 0)
68 { 68 {
69 part = m_queue.Dequeue(); 69 part = m_queue.Dequeue();
70 lock (m_ids) 70 lock (m_ids)
71 { 71 {
72 m_ids.Remove(part.UUID); 72 m_ids.Remove(part.UUID);
73 } 73 }
74 } 74 }
75 75
76 return part; 76 return part;
77 } 77 }
78 } 78 }
79} 79}