* Did some initial work for prim crossing. Just glue so far.

* Added the child_get_tasks OpenSim.ini flag for testing the UDP packet sending code and packet throttler.   This flag gets purposely disabled in grid mode.  This flag also has the consequence that you can see the prim in neighboring regions without going into them.  Be warned, this causes tons of dropped packets.
This commit is contained in:
Teravus Ovares
2007-11-21 02:17:24 +00:00
parent 7b09800d5b
commit 7cb38712d5
14 changed files with 370 additions and 11 deletions

View File

@@ -32,8 +32,15 @@ namespace OpenSim.Framework.Communications
public interface IInterRegionCommunications
{
bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData);
bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData);
bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying);
bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isFlying);
bool AcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentId);
bool AcknowledgePrimCrossed(ulong regionHandle, LLUUID primID);
void TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID);
}
}

View File

@@ -32,20 +32,31 @@ namespace OpenSim.Framework
{
public delegate void ExpectUserDelegate(ulong regionHandle, AgentCircuitData agent);
public delegate void ExpectPrimDelegate(ulong regionHandle, LLUUID primID, string objData);
public delegate void UpdateNeighbours(List<RegionInfo> neighbours);
public delegate void AgentCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying);
public delegate void PrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical);
public delegate void AcknowledgeAgentCross(ulong regionHandle, LLUUID agentID);
public delegate void AcknowledgePrimCross(ulong regionHandle, LLUUID PrimID);
public delegate void CloseAgentConnection(ulong regionHandle, LLUUID agentID);
public interface IRegionCommsListener
{
event ExpectUserDelegate OnExpectUser;
event ExpectPrimDelegate OnExpectPrim;
event GenericCall2 OnExpectChildAgent;
event AgentCrossing OnAvatarCrossingIntoRegion;
event PrimCrossing OnPrimCrossingIntoRegion;
event AcknowledgeAgentCross OnAcknowledgeAgentCrossed;
event AcknowledgePrimCross OnAcknowledgePrimCrossed;
event UpdateNeighbours OnNeighboursUpdate;
event CloseAgentConnection OnCloseAgentConnection;
}

View File

@@ -34,10 +34,13 @@ namespace OpenSim.Framework
public class RegionCommsListener : IRegionCommsListener
{
public event ExpectUserDelegate OnExpectUser;
public event ExpectPrimDelegate OnExpectPrim;
public event GenericCall2 OnExpectChildAgent;
public event AgentCrossing OnAvatarCrossingIntoRegion;
public event PrimCrossing OnPrimCrossingIntoRegion;
public event UpdateNeighbours OnNeighboursUpdate;
public event AcknowledgeAgentCross OnAcknowledgeAgentCrossed;
public event AcknowledgePrimCross OnAcknowledgePrimCrossed;
public event CloseAgentConnection OnCloseAgentConnection;
/// <summary>
@@ -55,6 +58,15 @@ namespace OpenSim.Framework
return false;
}
public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData)
{
if (OnExpectUser != null)
{
OnExpectPrim(regionHandle, primID, objData);
return true;
}
return false;
}
public virtual bool TriggerExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position,
bool isFlying)
@@ -66,6 +78,15 @@ namespace OpenSim.Framework
}
return false;
}
public virtual bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical)
{
if (OnPrimCrossingIntoRegion != null)
{
OnPrimCrossingIntoRegion(regionHandle, primID, position, isPhysical);
return true;
}
return false;
}
public virtual bool TriggerAcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentID)
{
@@ -77,6 +98,16 @@ namespace OpenSim.Framework
return false;
}
public virtual bool TriggerAcknowledgePrimCrossed(ulong regionHandle, LLUUID primID)
{
if (OnAcknowledgePrimCrossed != null)
{
OnAcknowledgePrimCrossed(regionHandle, primID);
return true;
}
return false;
}
public virtual void TriggerCloseAgentConnection(ulong regionHandle, LLUUID agentID)
{
if (OnCloseAgentConnection != null)