diff options
author | John Hurliman | 2009-10-26 16:48:43 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-26 16:48:43 -0700 |
commit | 0b1726b524934c2020aaf2b1f130219fb87003fd (patch) | |
tree | aa65455b68e8b595876f3f54479d96ce749bdedb /OpenSim/Region/Framework/Scenes | |
parent | * Switched all operations on the list of clients that could be either sync or... (diff) | |
download | opensim-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.cs | 25 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneBase.cs | 7 |
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 | { |