aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-26 16:48:43 -0700
committerJohn Hurliman2009-10-26 16:48:43 -0700
commit0b1726b524934c2020aaf2b1f130219fb87003fd (patch)
treeaa65455b68e8b595876f3f54479d96ce749bdedb /OpenSim/Region/Framework/Scenes
parent* Switched all operations on the list of clients that could be either sync or... (diff)
downloadopensim-SC_OLD-0b1726b524934c2020aaf2b1f130219fb87003fd.zip
opensim-SC_OLD-0b1726b524934c2020aaf2b1f130219fb87003fd.tar.gz
opensim-SC_OLD-0b1726b524934c2020aaf2b1f130219fb87003fd.tar.bz2
opensim-SC_OLD-0b1726b524934c2020aaf2b1f130219fb87003fd.tar.xz
Removing the ClientManager reference from IScene and hiding it entirely inside Scene as an implementation detail. This will reduce programming error and make it easier to refactor the avatar vs client vs presence mess later on
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs25
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneBase.cs7
2 files changed, 21 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 91367db..7eafef7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2482,7 +2482,7 @@ namespace OpenSim.Region.Framework.Scenes
2482 /// <param name="client"></param> 2482 /// <param name="client"></param>
2483 public override void AddNewClient(IClientAPI client) 2483 public override void AddNewClient(IClientAPI client)
2484 { 2484 {
2485 ClientManager.Add(client); 2485 m_clientManager.Add(client);
2486 2486
2487 CheckHeartbeat(); 2487 CheckHeartbeat();
2488 SubscribeToClientEvents(client); 2488 SubscribeToClientEvents(client);
@@ -3121,7 +3121,7 @@ namespace OpenSim.Region.Framework.Scenes
3121 3121
3122 // Remove the avatar from the scene 3122 // Remove the avatar from the scene
3123 m_sceneGraph.RemoveScenePresence(agentID); 3123 m_sceneGraph.RemoveScenePresence(agentID);
3124 ClientManager.Remove(agentID); 3124 m_clientManager.Remove(agentID);
3125 3125
3126 try 3126 try
3127 { 3127 {
@@ -4256,10 +4256,25 @@ namespace OpenSim.Region.Framework.Scenes
4256 4256
4257 public void ForEachClient(Action<IClientAPI> action) 4257 public void ForEachClient(Action<IClientAPI> action)
4258 { 4258 {
4259 if (m_useAsyncWhenPossible) 4259 ForEachClient(action, m_useAsyncWhenPossible);
4260 ClientManager.ForEach(action); 4260 }
4261
4262 public void ForEachClient(Action<IClientAPI> action, bool doAsynchronous)
4263 {
4264 if (doAsynchronous)
4265 m_clientManager.ForEach(action);
4261 else 4266 else
4262 ClientManager.ForEachSync(action); 4267 m_clientManager.ForEachSync(action);
4268 }
4269
4270 public bool TryGetClient(UUID avatarID, out IClientAPI client)
4271 {
4272 return m_clientManager.TryGetValue(avatarID, out client);
4273 }
4274
4275 public bool TryGetClient(System.Net.IPEndPoint remoteEndPoint, out IClientAPI client)
4276 {
4277 return m_clientManager.TryGetValue(remoteEndPoint, out client);
4263 } 4278 }
4264 4279
4265 public void ForEachSOG(Action<SceneObjectGroup> action) 4280 public void ForEachSOG(Action<SceneObjectGroup> action)
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index cf5c3c8..82731d1 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -102,12 +102,7 @@ namespace OpenSim.Region.Framework.Scenes
102 102
103 private readonly Mutex _primAllocateMutex = new Mutex(false); 103 private readonly Mutex _primAllocateMutex = new Mutex(false);
104 104
105 private readonly ClientManager m_clientManager = new ClientManager(); 105 protected readonly ClientManager m_clientManager = new ClientManager();
106
107 public ClientManager ClientManager
108 {
109 get { return m_clientManager; }
110 }
111 106
112 public float TimeDilation 107 public float TimeDilation
113 { 108 {