Add "show image queue <first-name> <last-name>" region console command

This is so that we can inspect the image download queue (texture download via udp) for debugging purposes.
This commit is contained in:
Justin Clark-Casey (justincc)
2012-01-10 21:30:12 +00:00
parent a2fe3e2081
commit ef074deb52
3 changed files with 107 additions and 6 deletions

View File

@@ -304,6 +304,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected static Dictionary<PacketType, PacketMethod> PacketHandlers = new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients
/// <summary>
/// Handles UDP texture download.
/// </summary>
public LLImageManager ImageManager { get; private set; }
private readonly LLUDPServer m_udpServer;
private readonly LLUDPClient m_udpClient;
private readonly UUID m_sessionId;
@@ -348,7 +353,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>();
protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers
protected Scene m_scene;
private LLImageManager m_imageManager;
protected string m_firstName;
protected string m_lastName;
protected Thread m_clientThread;
@@ -459,7 +463,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
m_GroupsModule = scene.RequestModuleInterface<IGroupsModule>();
m_imageManager = new LLImageManager(this, m_assetService, Scene.RequestModuleInterface<IJ2KDecoder>());
ImageManager = new LLImageManager(this, m_assetService, Scene.RequestModuleInterface<IJ2KDecoder>());
m_channelVersion = Util.StringToBytes256(scene.GetSimulatorVersion());
m_agentId = agentId;
m_sessionId = sessionId;
@@ -499,7 +503,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
IsActive = false;
// Shutdown the image manager
m_imageManager.Close();
ImageManager.Close();
// Fire the callback for this connection closing
if (OnConnectionClosed != null)
@@ -3939,7 +3943,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
if ((categories & ThrottleOutPacketTypeFlags.Texture) != 0)
m_imageManager.ProcessImageQueue(m_udpServer.TextureSendLimit);
ImageManager.ProcessImageQueue(m_udpServer.TextureSendLimit);
}
public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID)
@@ -7470,7 +7474,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if ((ImageType)block.Type == ImageType.Baked)
args.Priority *= 2.0f;
m_imageManager.EnqueueReq(args);
ImageManager.EnqueueReq(args);
}
return true;

View File

@@ -245,6 +245,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_shuttingdown = true;
}
/// <summary>
/// Returns an array containing all the images in the queue.
/// </summary>
/// <returns></returns>
public J2KImage[] GetImages()
{
lock (m_priorityQueue)
return m_priorityQueue.ToArray();
}
#region Priority Queue Helpers
private J2KImage GetHighestPriorityImage()