First pass at moving object property requests into a queue similar

to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
This commit is contained in:
Mic Bowman
2011-04-12 12:36:36 -07:00
parent 6e9cdb9ce3
commit 095e602c4a
11 changed files with 269 additions and 215 deletions

View File

@@ -78,7 +78,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
public bool Enqueue(uint pqueue, EntityUpdate value)
public bool Enqueue(uint pqueue, IEntityUpdate value)
{
LookupItem lookup;
@@ -99,7 +99,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return true;
}
internal bool TryDequeue(out EntityUpdate value, out Int32 timeinqueue)
internal bool TryDequeue(out IEntityUpdate value, out Int32 timeinqueue)
{
for (int i = 0; i < m_numberOfQueues; ++i)
{
@@ -122,7 +122,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
timeinqueue = 0;
value = default(EntityUpdate);
value = default(IEntityUpdate);
return false;
}
@@ -175,8 +175,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region MinHeapItem
private struct MinHeapItem : IComparable<MinHeapItem>
{
private EntityUpdate value;
internal EntityUpdate Value {
private IEntityUpdate value;
internal IEntityUpdate Value {
get {
return this.value;
}
@@ -212,7 +212,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
this.pqueue = pqueue;
}
internal MinHeapItem(uint pqueue, UInt64 entryorder, EntityUpdate value)
internal MinHeapItem(uint pqueue, UInt64 entryorder, IEntityUpdate value)
{
this.entrytime = Util.EnvironmentTickCount();
this.entryorder = entryorder;