aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorMW2008-07-21 15:13:34 +0000
committerMW2008-07-21 15:13:34 +0000
commitfb096dfbd54cfbcfa60be872cee1680eb521dd14 (patch)
treefdc6c3b4d5d15dfd03dc24138ada668e62af7562 /OpenSim/Framework
parentMantis#1801. Thank you kindly, Junta_Kohime for a patch that: (diff)
downloadopensim-SC_OLD-fb096dfbd54cfbcfa60be872cee1680eb521dd14.zip
opensim-SC_OLD-fb096dfbd54cfbcfa60be872cee1680eb521dd14.tar.gz
opensim-SC_OLD-fb096dfbd54cfbcfa60be872cee1680eb521dd14.tar.bz2
opensim-SC_OLD-fb096dfbd54cfbcfa60be872cee1680eb521dd14.tar.xz
added experimental packet tracker (LLPacketTracker.cs), which can be told to track a packet and if it hasn't been acked within a set time, trigger a IClientAPI event, that the application/scene can handle. Currently only terrain packet tracking is finished, Tracking for initial Prim packets (first full update for a prim) is being worked on. Future improvements would be to make it a more generic packet tracker with callback delegates instead of events.
Add a test event handler (which would fire after a minute if a terrain packet hadn't been acked) to scene to handle the OnUnackedTerrain event, which currently just resends the terrain patch. The idea of this packet tracking is for the region level application to be able to know if the client stack gave up on sending a packet.
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/Communications/CommunicationsManager.cs3
-rw-r--r--OpenSim/Framework/IClientAPI.cs11
2 files changed, 9 insertions, 5 deletions
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs
index a45e236..5be7334 100644
--- a/OpenSim/Framework/Communications/CommunicationsManager.cs
+++ b/OpenSim/Framework/Communications/CommunicationsManager.cs
@@ -125,9 +125,7 @@ namespace OpenSim.Framework.Communications
125 { 125 {
126 return invService; 126 return invService;
127 } 127 }
128
129 } 128 }
130
131 return null; 129 return null;
132 } 130 }
133 } 131 }
@@ -139,7 +137,6 @@ namespace OpenSim.Framework.Communications
139 host = m_defaultInventoryHost; 137 host = m_defaultInventoryHost;
140 } 138 }
141 139
142
143 lock (m_inventoryServices) 140 lock (m_inventoryServices)
144 { 141 {
145 foreach (IInventoryServices service in m_inventoryServices) 142 foreach (IInventoryServices service in m_inventoryServices)
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index bb44eb9..a835598 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -299,6 +299,9 @@ namespace OpenSim.Framework
299 public delegate void GetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID); 299 public delegate void GetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID);
300 public delegate void SetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID, bool running); 300 public delegate void SetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID, bool running);
301 301
302
303 public delegate void TerrainUnacked(IClientAPI remoteClient, int patchX, int patchY);
304
302 #endregion 305 #endregion
303 306
304 public interface IClientAPI 307 public interface IClientAPI
@@ -501,6 +504,8 @@ namespace OpenSim.Framework
501 event SetScriptRunning OnSetScriptRunning; 504 event SetScriptRunning OnSetScriptRunning;
502 event UpdateVector OnAutoPilotGo; 505 event UpdateVector OnAutoPilotGo;
503 506
507 event TerrainUnacked OnUnackedTerrain;
508
504 // [Obsolete("IClientAPI.OutPacket SHOULD NOT EXIST outside of LLClientView please refactor appropriately.")] 509 // [Obsolete("IClientAPI.OutPacket SHOULD NOT EXIST outside of LLClientView please refactor appropriately.")]
505 void OutPacket(Packet newPack, ThrottleOutPacketType packType); 510 void OutPacket(Packet newPack, ThrottleOutPacketType packType);
506 void SendWearables(AvatarWearable[] wearables, int serial); 511 void SendWearables(AvatarWearable[] wearables, int serial);
@@ -521,6 +526,8 @@ namespace OpenSim.Framework
521 526
522 void SendLayerData(float[] map); 527 void SendLayerData(float[] map);
523 void SendLayerData(int px, int py, float[] map); 528 void SendLayerData(int px, int py, float[] map);
529 void SendLayerData(int px, int py, float[] map, bool track);
530
524 void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look); 531 void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look);
525 void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint); 532 void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint);
526 AgentCircuitData RequestClientInfo(); 533 AgentCircuitData RequestClientInfo();
@@ -554,13 +561,13 @@ namespace OpenSim.Framework
554 LLVector3 pos, LLVector3 vel, LLVector3 acc, LLQuaternion rotation, LLVector3 rvel, 561 LLVector3 pos, LLVector3 vel, LLVector3 acc, LLQuaternion rotation, LLVector3 rvel,
555 uint flags, 562 uint flags,
556 LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, 563 LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem,
557 byte clickAction, byte[] textureanim, bool attachment, uint AttachPoint, LLUUID AssetId, LLUUID SoundId, double SoundVolume, byte SoundFlags, double SoundRadius); 564 byte clickAction, byte[] textureanim, bool attachment, uint AttachPoint, LLUUID AssetId, LLUUID SoundId, double SoundVolume, byte SoundFlags, double SoundRadius, bool track);
558 565
559 566
560 void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, 567 void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape,
561 LLVector3 pos, LLVector3 vel, LLVector3 acc, LLQuaternion rotation, LLVector3 rvel, 568 LLVector3 pos, LLVector3 vel, LLVector3 acc, LLQuaternion rotation, LLVector3 rvel,
562 uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, 569 uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color,
563 uint parentID, byte[] particleSystem, byte clickAction); 570 uint parentID, byte[] particleSystem, byte clickAction, bool track);
564 571
565 void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, 572 void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
566 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId); 573 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity, byte state, LLUUID AssetId);