mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 11:33:28 +08:00
Merge branch 'master' into careminster
This commit is contained in:
@@ -87,7 +87,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
"Show priority queue data for each client",
|
||||
"Without the 'full' option, only root agents are shown."
|
||||
+ " With the 'full' option child agents are also shown.",
|
||||
ShowPQueuesReport);
|
||||
(mod, cmd) => MainConsole.Instance.Output(GetPQueuesReport(cmd)));
|
||||
|
||||
scene.AddCommand(
|
||||
this, "show queues",
|
||||
@@ -95,7 +95,13 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
"Show queue data for each client",
|
||||
"Without the 'full' option, only root agents are shown."
|
||||
+ " With the 'full' option child agents are also shown.",
|
||||
ShowQueuesReport);
|
||||
(mod, cmd) => MainConsole.Instance.Output(GetQueuesReport(cmd)));
|
||||
|
||||
scene.AddCommand(
|
||||
this, "show image queues",
|
||||
"show image queues <first-name> <last-name>",
|
||||
"Show the image queues (textures downloaded via UDP) for a particular client.",
|
||||
(mod, cmd) => MainConsole.Instance.Output(GetImageQueuesReport(cmd)));
|
||||
|
||||
scene.AddCommand(
|
||||
this, "show throttles",
|
||||
@@ -103,7 +109,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
"Show throttle settings for each client and for the server overall",
|
||||
"Without the 'full' option, only root agents are shown."
|
||||
+ " With the 'full' option child agents are also shown.",
|
||||
ShowThrottlesReport);
|
||||
(mod, cmd) => MainConsole.Instance.Output(GetThrottlesReport(cmd)));
|
||||
|
||||
scene.AddCommand(
|
||||
this, "emergency-monitoring",
|
||||
@@ -124,21 +130,6 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
public void RegionLoaded(Scene scene)
|
||||
{
|
||||
// m_log.DebugFormat("[LINDEN UDP INFO MODULE]: REGION {0} LOADED", scene.RegionInfo.RegionName);
|
||||
}
|
||||
|
||||
protected void ShowPQueuesReport(string module, string[] cmd)
|
||||
{
|
||||
MainConsole.Instance.Output(GetPQueuesReport(cmd));
|
||||
}
|
||||
|
||||
protected void ShowQueuesReport(string module, string[] cmd)
|
||||
{
|
||||
MainConsole.Instance.Output(GetQueuesReport(cmd));
|
||||
}
|
||||
|
||||
protected void ShowThrottlesReport(string module, string[] cmd)
|
||||
{
|
||||
MainConsole.Instance.Output(GetThrottlesReport(cmd));
|
||||
}
|
||||
|
||||
protected void EmergencyMonitoring(string module, string[] cmd)
|
||||
@@ -166,7 +157,6 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
entry.Length > maxLength ? entry.Substring(0, maxLength) : entry,
|
||||
"");
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Generate UDP Queue data report for each client
|
||||
@@ -240,6 +230,82 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
||||
|
||||
return report.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate an image queue report
|
||||
/// </summary>
|
||||
/// <param name="showParams"></param>
|
||||
/// <returns></returns>
|
||||
private string GetImageQueuesReport(string[] showParams)
|
||||
{
|
||||
if (showParams.Length < 5 || showParams.Length > 6)
|
||||
{
|
||||
MainConsole.Instance.OutputFormat("Usage: show image queues <first-name> <last-name> [full]");
|
||||
return "";
|
||||
}
|
||||
|
||||
string firstName = showParams[3];
|
||||
string lastName = showParams[4];
|
||||
|
||||
bool showChildAgents = showParams.Length == 6;
|
||||
|
||||
List<ScenePresence> foundAgents = new List<ScenePresence>();
|
||||
|
||||
lock (m_scenes)
|
||||
{
|
||||
foreach (Scene scene in m_scenes.Values)
|
||||
{
|
||||
ScenePresence sp = scene.GetScenePresence(firstName, lastName);
|
||||
if (sp != null && (showChildAgents || !sp.IsChildAgent))
|
||||
foundAgents.Add(sp);
|
||||
}
|
||||
}
|
||||
|
||||
if (foundAgents.Count == 0)
|
||||
{
|
||||
MainConsole.Instance.OutputFormat("No agents found for {0} {1}", firstName, lastName);
|
||||
return "";
|
||||
}
|
||||
|
||||
StringBuilder report = new StringBuilder();
|
||||
|
||||
foreach (ScenePresence agent in foundAgents)
|
||||
{
|
||||
LLClientView client = agent.ControllingClient as LLClientView;
|
||||
|
||||
if (client == null)
|
||||
{
|
||||
MainConsole.Instance.OutputFormat("This command is only supported for LLClientView");
|
||||
return "";
|
||||
}
|
||||
|
||||
J2KImage[] images = client.ImageManager.GetImages();
|
||||
|
||||
report.AppendFormat(
|
||||
"In region {0} ({1} agent)\n",
|
||||
agent.Scene.RegionInfo.RegionName, agent.IsChildAgent ? "child" : "root");
|
||||
report.AppendFormat("Images in queue: {0}\n", images.Length);
|
||||
|
||||
if (images.Length > 0)
|
||||
{
|
||||
report.AppendFormat(
|
||||
"{0,-36} {1,-8} {2,-9} {3,-9} {4,-9} {5,-7}\n",
|
||||
"Texture ID",
|
||||
"Last Seq",
|
||||
"Priority",
|
||||
"Start Pkt",
|
||||
"Has Asset",
|
||||
"Decoded");
|
||||
|
||||
foreach (J2KImage image in images)
|
||||
report.AppendFormat(
|
||||
"{0,36} {1,8} {2,9} {3,10} {4,9} {5,7}\n",
|
||||
image.TextureID, image.LastSequence, image.Priority, image.StartPacket, image.HasAsset, image.IsDecoded);
|
||||
}
|
||||
}
|
||||
|
||||
return report.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate UDP Queue data report for each client
|
||||
|
||||
Reference in New Issue
Block a user