* Moving all of the prioritization/reprioritization code into a new file Prioritizer.cs

* Simplified the interest management code to make it easier to add new policies. Prioritization and reprioritization share code paths now
* Improved the distance and front back policies to always give your avatar the highest priority
This commit is contained in:
John Hurliman
2010-05-21 13:55:36 -07:00
parent 4b518e0288
commit 93ef65c690
15 changed files with 207 additions and 315 deletions

View File

@@ -458,8 +458,6 @@ namespace OpenSim.Framework
public delegate void PlacesQuery(UUID QueryID, UUID TransactionID, string QueryText, uint QueryFlags, byte Category, string SimName, IClientAPI client);
public delegate void AgentFOV(IClientAPI client, float verticalAngle);
public delegate double UpdatePriorityHandler(UpdatePriorityData data);
public delegate void MuteListEntryUpdate(IClientAPI client, UUID MuteID, string Name, int Flags,UUID AgentID);
@@ -571,17 +569,16 @@ namespace OpenSim.Framework
public float dwell;
}
public struct UpdatePriorityData {
private double m_priority;
private uint m_localID;
public class EntityUpdate
{
public ISceneEntity Entity;
public PrimUpdateFlags Flags;
public UpdatePriorityData(double priority, uint localID) {
this.m_priority = priority;
this.m_localID = localID;
public EntityUpdate(ISceneEntity entity, PrimUpdateFlags flags)
{
Entity = entity;
Flags = flags;
}
public double priority { get { return this.m_priority; } }
public uint localID { get { return this.m_localID; } }
}
/// <summary>
@@ -1024,7 +1021,7 @@ namespace OpenSim.Framework
void SendAvatarDataImmediate(ISceneEntity avatar);
void SendPrimUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags);
void ReprioritizeUpdates(UpdatePriorityHandler handler);
void ReprioritizeUpdates();
void FlushPrimUpdates();
void SendInventoryFolderDetails(UUID ownerID, UUID folderID, List<InventoryItemBase> items,