From af3cd00048fb6476eb5140bcfccda926627363f2 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 9 Dec 2011 23:07:53 +0000
Subject: Get rid of IScene.PresenceChildStatus() which always had to execute a
lookup in favour of IClientAPI.ISceneAgent.IsChildAgent instead.
---
OpenSim/Framework/IScene.cs | 13 -------------
OpenSim/Framework/ISceneAgent.cs | 7 +++++++
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 16 ++++------------
OpenSim/Region/Framework/Scenes/Scene.cs | 11 -----------
OpenSim/Region/Framework/Scenes/SceneBase.cs | 5 -----
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 15 ++-------------
.../Agent/UDP/Linden/LindenUDPInfoModule.cs | 6 +++---
7 files changed, 16 insertions(+), 57 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs
index e0e023d..b2604f4 100644
--- a/OpenSim/Framework/IScene.cs
+++ b/OpenSim/Framework/IScene.cs
@@ -89,19 +89,6 @@ namespace OpenSim.Framework
string GetSimulatorVersion();
- ///
- /// Is the agent denoted by the given agentID a child presence in this scene?
- ///
- ///
- /// Used by ClientView when a 'kick everyone' or 'estate message' occurs
- ///
- /// AvatarID to lookup
- /// true if the presence is a child agent, false if the presence is a root exception
- ///
- /// Thrown if the agent does not exist.
- ///
- bool PresenceChildStatus(UUID agentId);
-
bool TryGetScenePresence(UUID agentID, out object scenePresence);
///
diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs
index 69e91ed..824172d 100644
--- a/OpenSim/Framework/ISceneAgent.cs
+++ b/OpenSim/Framework/ISceneAgent.cs
@@ -48,6 +48,13 @@ namespace OpenSim.Framework
PresenceType PresenceType { get; }
///
+ /// If true, then the agent has no avatar in the scene.
+ /// The agent exists to relay data from a region that neighbours the current position of the user's avatar.
+ /// Occasionally data is relayed, such as which a user clicks an item in a neighbouring region.
+ ///
+ bool IsChildAgent { get; }
+
+ ///
/// Avatar appearance data.
///
///
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f246637..1d4be8a 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -525,7 +525,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void Kick(string message)
{
- if (!ChildAgentStatus())
+ if (!SceneAgent.IsChildAgent)
{
KickUserPacket kupack = (KickUserPacket)PacketPool.Instance.GetPacket(PacketType.KickUser);
kupack.UserInfo.AgentID = AgentId;
@@ -2448,7 +2448,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message)
{
- if (!ChildAgentStatus())
+ if (!SceneAgent.IsChildAgent)
SendInstantMessage(new GridInstantMessage(null, FromAvatarID, FromAvatarName, AgentId, 1, Message, false, new Vector3()));
//SendInstantMessage(FromAvatarID, fromSessionID, Message, AgentId, SessionId, FromAvatarName, (byte)21,(uint) Util.UnixTimeSinceEpoch());
@@ -5054,14 +5054,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return 0;
}
- ///
- /// This is a utility method used by single states to not duplicate kicks and blue card of death messages.
- ///
- public bool ChildAgentStatus()
- {
- return m_scene.PresenceChildStatus(AgentId);
- }
-
#endregion
///
@@ -11625,7 +11617,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (logPacket)
m_log.DebugFormat(
"[CLIENT]: PACKET OUT to {0} ({1}) in {2} - {3}",
- Name, ChildAgentStatus() ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
+ Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
}
m_udpServer.SendPacket(m_udpClient, packet, throttlePacketType, doAutomaticSplitting, method);
@@ -11682,7 +11674,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (logPacket)
m_log.DebugFormat(
"[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}",
- Name, ChildAgentStatus() ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
+ Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
}
if (!ProcessPacketMethod(packet))
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 11505cc..9fdf395 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4193,17 +4193,6 @@ namespace OpenSim.Region.Framework.Scenes
}
///
- /// Returns true if scene presence is a child (no avatar in this scene)
- ///
- ///
- ///
- public override bool PresenceChildStatus(UUID avatarID)
- {
- ScenePresence sp;
- return TryGetScenePresence(avatarID, out sp) && sp.IsChildAgent;
- }
-
- ///
/// Performs action on all avatars in the scene (root scene presences)
/// Avatars may be an NPC or a 'real' client.
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index da15491..712e094 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -211,11 +211,6 @@ namespace OpenSim.Region.Framework.Scenes
}
#region admin stuff
-
- public virtual bool PresenceChildStatus(UUID avatarID)
- {
- return false;
- }
public abstract void OtherRegionUp(GridRegion otherRegion);
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index cebf51b..fa731a7 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -612,19 +612,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- ///
- /// If this is true, agent doesn't have a representation in this scene.
- /// this is an agent 'looking into' this scene from a nearby scene(region)
- ///
- /// if False, this agent has a representation in this scene
- ///
- private bool m_isChildAgent = true;
-
- public bool IsChildAgent
- {
- get { return m_isChildAgent; }
- set { m_isChildAgent = value; }
- }
+ public bool IsChildAgent { get; set; }
public uint ParentID
{
@@ -741,6 +729,7 @@ namespace OpenSim.Region.Framework.Scenes
{
AttachmentsSyncLock = new Object();
+ IsChildAgent = true;
m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
Animator = new ScenePresenceAnimator(this);
PresenceType = type;
diff --git a/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs b/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs
index 8f8124e..c754019 100644
--- a/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs
+++ b/OpenSim/Region/OptionalModules/Agent/UDP/Linden/LindenUDPInfoModule.cs
@@ -219,7 +219,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
{
if (client is LLClientView)
{
- bool isChild = scene.PresenceChildStatus(client.AgentId);
+ bool isChild = client.SceneAgent.IsChildAgent;
if (isChild && !showChildren)
return;
@@ -308,7 +308,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
{
if (client is IStatsCollector)
{
- bool isChild = scene.PresenceChildStatus(client.AgentId);
+ bool isChild = client.SceneAgent.IsChildAgent;
if (isChild && !showChildren)
return;
@@ -404,7 +404,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
firstClient = false;
}
- bool isChild = scene.PresenceChildStatus(client.AgentId);
+ bool isChild = client.SceneAgent.IsChildAgent;
if (isChild && !showChildren)
return;
--
cgit v1.1