added in find calls
added logging of exceptions, which we'll get quite a few of at this point most likely0.6.0-stable
parent
6e1bcbcf48
commit
a0f2e46836
|
@ -41,11 +41,17 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
public class EntityList
|
public class EntityList
|
||||||
{
|
{
|
||||||
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
// we are intentionally using non generics here as testing has
|
||||||
|
// shown synchronized collections are faster than manually
|
||||||
|
// locked generics.
|
||||||
|
|
||||||
private Hashtable m_obj_by_uuid;
|
private Hashtable m_obj_by_uuid;
|
||||||
private Hashtable m_pres_by_uuid;
|
|
||||||
private Hashtable m_obj_by_local;
|
private Hashtable m_obj_by_local;
|
||||||
|
|
||||||
|
private Hashtable m_pres_by_uuid;
|
||||||
|
|
||||||
public EntityList()
|
public EntityList()
|
||||||
{
|
{
|
||||||
m_obj_by_uuid = Hashtable.Synchronized(new Hashtable());
|
m_obj_by_uuid = Hashtable.Synchronized(new Hashtable());
|
||||||
|
@ -89,6 +95,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
m_log.ErrorFormat("RemoveObject failed for {0}", uuid, e);
|
||||||
sog = null;
|
sog = null;
|
||||||
}
|
}
|
||||||
return sog;
|
return sog;
|
||||||
|
@ -104,9 +111,52 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
m_log.ErrorFormat("RemovePresence failed for {0}", uuid, e);
|
||||||
sp = null;
|
sp = null;
|
||||||
}
|
}
|
||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SceneObjectGroup FindObject(LLUUID uuid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SceneObjectGroup sog = (SceneObjectGroup)m_obj_by_uuid[uuid];
|
||||||
|
return sog;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("FindObject failed for {0}", uuid, e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SceneObjectGroup FindObject(int local)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LLUUID uuid = (LLUUID)m_obj_by_local[local];
|
||||||
|
SceneObjectGroup sog = (SceneObjectGroup)m_obj_by_uuid[uuid];
|
||||||
|
return sog;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat("FindObject failed for {0}", local, e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScenePresence FindPresense(LLUUID uuid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ScenePresence sp = (ScenePresence)m_pres_by_uuid[uuid];
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue