* minor: Comments

arthursv
Teravus Ovares (Dan Olivares) 2009-08-12 22:54:57 -04:00
parent 41ad610f3e
commit b47e405420
4 changed files with 181 additions and 4 deletions

View File

@ -36,25 +36,47 @@ using OpenSim.Framework.Console;
namespace OpenSim namespace OpenSim
{ {
/// <summary>
/// Starting class for the OpenSimulator Region
/// </summary>
public class Application public class Application
{ {
/// <summary>
/// Text Console Logger
/// </summary>
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// Path to the main ini Configuration file
/// </summary>
public static string iniFilePath = ""; public static string iniFilePath = "";
/// <summary>
/// Save Crashes in the bin/crashes folder. Configurable with m_crashDir
/// </summary>
public static bool m_saveCrashDumps = false; public static bool m_saveCrashDumps = false;
/// <summary>
/// Directory to save crash reports to. Relative to bin/
/// </summary>
public static string m_crashDir = "crashes"; public static string m_crashDir = "crashes";
/// <summary>
/// Instance of the OpenSim class. This could be OpenSim or OpenSimBackground depending on the configuration
/// </summary>
protected static OpenSimBase m_sim = null; protected static OpenSimBase m_sim = null;
//could move our main function into OpenSimMain and kill this class //could move our main function into OpenSimMain and kill this class
public static void Main(string[] args) public static void Main(string[] args)
{ {
// First line // First line, hook the appdomain to the crash reporter
AppDomain.CurrentDomain.UnhandledException += AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// Add the arguments supplied when running the application to the configuration
ArgvConfigSource configSource = new ArgvConfigSource(args); ArgvConfigSource configSource = new ArgvConfigSource(args);
// Configure Log4Net
configSource.AddSwitch("Startup", "logconfig"); configSource.AddSwitch("Startup", "logconfig");
string logConfigFile = configSource.Configs["Startup"].GetString("logconfig", String.Empty); string logConfigFile = configSource.Configs["Startup"].GetString("logconfig", String.Empty);
if (logConfigFile != String.Empty) if (logConfigFile != String.Empty)
@ -69,6 +91,8 @@ namespace OpenSim
m_log.Info("[OPENSIM MAIN]: configured log4net using default OpenSim.exe.config"); m_log.Info("[OPENSIM MAIN]: configured log4net using default OpenSim.exe.config");
} }
// Check if the system is compatible with OpenSimulator.
// Ensures that the minimum system requirements are met
m_log.Info("Performing compatibility checks... "); m_log.Info("Performing compatibility checks... ");
string supported = String.Empty; string supported = String.Empty;
if (Util.IsEnvironmentSupported(ref supported)) if (Util.IsEnvironmentSupported(ref supported))
@ -80,6 +104,7 @@ namespace OpenSim
m_log.Warn("Environment is unsupported (" + supported + ")\n"); m_log.Warn("Environment is unsupported (" + supported + ")\n");
} }
// Configure nIni aliases and localles
Culture.SetCurrentCulture(); Culture.SetCurrentCulture();
@ -99,8 +124,13 @@ namespace OpenSim
configSource.AddConfig("StandAlone"); configSource.AddConfig("StandAlone");
configSource.AddConfig("Network"); configSource.AddConfig("Network");
// Check if we're running in the background or not
bool background = configSource.Configs["Startup"].GetBoolean("background", false); bool background = configSource.Configs["Startup"].GetBoolean("background", false);
// Check if we're saving crashes
m_saveCrashDumps = configSource.Configs["Startup"].GetBoolean("save_crashes", false); m_saveCrashDumps = configSource.Configs["Startup"].GetBoolean("save_crashes", false);
// load Crash directory config
m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir); m_crashDir = configSource.Configs["Startup"].GetString("crash_dir", m_crashDir);
if (background) if (background)
@ -118,6 +148,7 @@ namespace OpenSim
{ {
try try
{ {
// Block thread here for input
MainConsole.Instance.Prompt(); MainConsole.Instance.Prompt();
} }
catch (Exception e) catch (Exception e)

View File

@ -37,12 +37,32 @@ using OpenSim.Framework;
namespace OpenSim namespace OpenSim
{ {
/// <summary>
/// Loads the Configuration files into nIni
/// </summary>
public class ConfigurationLoader public class ConfigurationLoader
{ {
/// <summary>
/// Various Config settings the region needs to start
/// Physics Engine, Mesh Engine, GridMode, PhysicsPrim allowed, Neighbor,
/// StorageDLL, Storage Connection String, Estate connection String, Client Stack
/// Standalone settings.
/// </summary>
protected ConfigSettings m_configSettings; protected ConfigSettings m_configSettings;
/// <summary>
/// A source of Configuration data
/// </summary>
protected OpenSimConfigSource m_config; protected OpenSimConfigSource m_config;
/// <summary>
/// Grid Service Information. This refers to classes and addresses of the grid service
/// </summary>
protected NetworkServersInfo m_networkServersInfo; protected NetworkServersInfo m_networkServersInfo;
/// <summary>
/// Console logger
/// </summary>
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger( LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType); MethodBase.GetCurrentMethod().DeclaringType);
@ -51,6 +71,13 @@ namespace OpenSim
{ {
} }
/// <summary>
/// Loads the region configuration
/// </summary>
/// <param name="argvSource">Parameters passed into the process when started</param>
/// <param name="configSettings"></param>
/// <param name="networkInfo"></param>
/// <returns>A configuration that gets passed to modules</returns>
public OpenSimConfigSource LoadConfigSettings( public OpenSimConfigSource LoadConfigSettings(
IConfigSource argvSource, out ConfigSettings configSettings, IConfigSource argvSource, out ConfigSettings configSettings,
out NetworkServersInfo networkInfo) out NetworkServersInfo networkInfo)
@ -169,15 +196,22 @@ namespace OpenSim
return m_config; return m_config;
} }
/// <summary>
/// Adds the included files as ini configuration files
/// </summary>
/// <param name="sources">List of URL strings or filename strings</param>
private void AddIncludes(List<string> sources) private void AddIncludes(List<string> sources)
{ {
//loop over config sources
foreach (IConfig config in m_config.Source.Configs) foreach (IConfig config in m_config.Source.Configs)
{ {
// Look for Include-* in the key name
string[] keys = config.GetKeys(); string[] keys = config.GetKeys();
foreach (string k in keys) foreach (string k in keys)
{ {
if (k.StartsWith("Include-")) if (k.StartsWith("Include-"))
{ {
// read the config file to be included.
string file = config.GetString(k); string file = config.GetString(k);
if (IsUri(file)) if (IsUri(file))
{ {
@ -199,7 +233,11 @@ namespace OpenSim
} }
} }
} }
/// <summary>
/// Check if we can convert the string to a URI
/// </summary>
/// <param name="file">String uri to the remote resource</param>
/// <returns>true if we can convert the string to a Uri object</returns>
bool IsUri(string file) bool IsUri(string file)
{ {
Uri configUri; Uri configUri;
@ -253,7 +291,7 @@ namespace OpenSim
/// <summary> /// <summary>
/// Setup a default config values in case they aren't present in the ini file /// Setup a default config values in case they aren't present in the ini file
/// </summary> /// </summary>
/// <returns></returns> /// <returns>A Configuration source containing the default configuration</returns>
private static IConfigSource DefaultConfig() private static IConfigSource DefaultConfig()
{ {
IConfigSource defaultConfig = new IniConfigSource(); IConfigSource defaultConfig = new IniConfigSource();
@ -322,6 +360,9 @@ namespace OpenSim
return defaultConfig; return defaultConfig;
} }
/// <summary>
/// Read initial region settings from the ConfigSource
/// </summary>
protected virtual void ReadConfigSettings() protected virtual void ReadConfigSettings()
{ {
IConfig startupConfig = m_config.Source.Configs["Startup"]; IConfig startupConfig = m_config.Source.Configs["Startup"];

View File

@ -29,12 +29,24 @@ using OpenSim.Framework;
namespace OpenSim namespace OpenSim
{ {
/// <summary>
/// OpenSimulator Application Plugin framework interface
/// </summary>
public interface IApplicationPlugin : IPlugin public interface IApplicationPlugin : IPlugin
{ {
/// <summary>
/// Initialize the Plugin
/// </summary>
/// <param name="openSim">The Application instance</param>
void Initialise(OpenSimBase openSim); void Initialise(OpenSimBase openSim);
/// <summary>
/// Called when the application loading is completed
/// </summary>
void PostInitialise(); void PostInitialise();
} }
public class ApplicationPluginInitialiser : PluginInitialiserBase public class ApplicationPluginInitialiser : PluginInitialiserBase
{ {
private OpenSimBase server; private OpenSimBase server;

View File

@ -146,6 +146,9 @@ namespace OpenSim
ChangeSelectedRegion("region", new string[] {"change", "region", "root"}); ChangeSelectedRegion("region", new string[] {"change", "region", "root"});
} }
/// <summary>
/// Register standard set of region console commands
/// </summary>
private void RegisterConsoleCommands() private void RegisterConsoleCommands()
{ {
m_console.Commands.AddCommand("region", false, "clear assets", m_console.Commands.AddCommand("region", false, "clear assets",
@ -332,6 +335,11 @@ namespace OpenSim
base.ShutdownSpecific(); base.ShutdownSpecific();
} }
/// <summary>
/// Timer to run a specific text file as console commands. Configured in in the main ini file
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RunAutoTimerScript(object sender, EventArgs e) private void RunAutoTimerScript(object sender, EventArgs e)
{ {
if (m_timedScript != "disabled") if (m_timedScript != "disabled")
@ -342,6 +350,11 @@ namespace OpenSim
#region Console Commands #region Console Commands
/// <summary>
/// Kicks users off the region
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams">name of avatar to kick</param>
private void KickUserCommand(string module, string[] cmdparams) private void KickUserCommand(string module, string[] cmdparams)
{ {
if (cmdparams.Length < 4) if (cmdparams.Length < 4)
@ -401,6 +414,10 @@ namespace OpenSim
} }
} }
/// <summary>
/// Opens a file and uses it as input to the console command parser.
/// </summary>
/// <param name="fileName">name of file to use as input to the console</param>
private static void PrintFileToConsole(string fileName) private static void PrintFileToConsole(string fileName)
{ {
if (File.Exists(fileName)) if (File.Exists(fileName))
@ -419,12 +436,22 @@ namespace OpenSim
m_log.Info("Not implemented."); m_log.Info("Not implemented.");
} }
/// <summary>
/// Force resending of all updates to all clients in active region(s)
/// </summary>
/// <param name="module"></param>
/// <param name="args"></param>
private void HandleForceUpdate(string module, string[] args) private void HandleForceUpdate(string module, string[] args)
{ {
m_log.Info("Updating all clients"); m_log.Info("Updating all clients");
m_sceneManager.ForceCurrentSceneClientUpdate(); m_sceneManager.ForceCurrentSceneClientUpdate();
} }
/// <summary>
/// Edits the scale of a primative with the name specified
/// </summary>
/// <param name="module"></param>
/// <param name="args">0,1, name, x, y, z</param>
private void HandleEditScale(string module, string[] args) private void HandleEditScale(string module, string[] args)
{ {
if (args.Length == 6) if (args.Length == 6)
@ -437,6 +464,11 @@ namespace OpenSim
} }
} }
/// <summary>
/// Creates a new region based on the parameters specified. This will ask the user questions on the console
/// </summary>
/// <param name="module"></param>
/// <param name="cmd">0,1,region name, region XML file</param>
private void HandleCreateRegion(string module, string[] cmd) private void HandleCreateRegion(string module, string[] cmd)
{ {
if (cmd.Length < 4) if (cmd.Length < 4)
@ -473,16 +505,32 @@ namespace OpenSim
} }
} }
/// <summary>
/// Enable logins
/// </summary>
/// <param name="module"></param>
/// <param name="cmd"></param>
private void HandleLoginEnable(string module, string[] cmd) private void HandleLoginEnable(string module, string[] cmd)
{ {
ProcessLogin(true); ProcessLogin(true);
} }
/// <summary>
/// Disable logins
/// </summary>
/// <param name="module"></param>
/// <param name="cmd"></param>
private void HandleLoginDisable(string module, string[] cmd) private void HandleLoginDisable(string module, string[] cmd)
{ {
ProcessLogin(false); ProcessLogin(false);
} }
/// <summary>
/// Log login status to the console
/// </summary>
/// <param name="module"></param>
/// <param name="cmd"></param>
private void HandleLoginStatus(string module, string[] cmd) private void HandleLoginStatus(string module, string[] cmd)
{ {
if (m_commsManager.GridService.RegionLoginsEnabled == false) if (m_commsManager.GridService.RegionLoginsEnabled == false)
@ -492,6 +540,12 @@ namespace OpenSim
m_log.Info("[ Login ] Login are enabled"); m_log.Info("[ Login ] Login are enabled");
} }
/// <summary>
/// Change and load configuration file data.
/// </summary>
/// <param name="module"></param>
/// <param name="cmd"></param>
private void HandleConfig(string module, string[] cmd) private void HandleConfig(string module, string[] cmd)
{ {
List<string> args = new List<string>(cmd); List<string> args = new List<string>(cmd);
@ -557,6 +611,12 @@ namespace OpenSim
} }
} }
/// <summary>
/// Load, Unload, and list Region modules in use
/// </summary>
/// <param name="module"></param>
/// <param name="cmd"></param>
private void HandleModules(string module, string[] cmd) private void HandleModules(string module, string[] cmd)
{ {
List<string> args = new List<string>(cmd); List<string> args = new List<string>(cmd);
@ -797,6 +857,11 @@ namespace OpenSim
} }
// see BaseOpenSimServer // see BaseOpenSimServer
/// <summary>
/// Many commands list objects for debugging. Some of the types are listed here
/// </summary>
/// <param name="mod"></param>
/// <param name="cmd"></param>
public override void HandleShow(string mod, string[] cmd) public override void HandleShow(string mod, string[] cmd)
{ {
base.HandleShow(mod, cmd); base.HandleShow(mod, cmd);
@ -902,6 +967,10 @@ namespace OpenSim
} }
} }
/// <summary>
/// print UDP Queue data for each client
/// </summary>
/// <returns></returns>
private string GetQueuesReport() private string GetQueuesReport()
{ {
string report = String.Empty; string report = String.Empty;
@ -1010,6 +1079,11 @@ namespace OpenSim
m_commsManager.UserAdminService.ResetUserPassword(firstName, lastName, newPassword); m_commsManager.UserAdminService.ResetUserPassword(firstName, lastName, newPassword);
} }
/// <summary>
/// Use XML2 format to serialize data to a file
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams"></param>
protected void SavePrimsXml2(string module, string[] cmdparams) protected void SavePrimsXml2(string module, string[] cmdparams)
{ {
if (cmdparams.Length > 5) if (cmdparams.Length > 5)
@ -1022,6 +1096,11 @@ namespace OpenSim
} }
} }
/// <summary>
/// Use XML format to serialize data to a file
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams"></param>
protected void SaveXml(string module, string[] cmdparams) protected void SaveXml(string module, string[] cmdparams)
{ {
m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason."); m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason.");
@ -1036,6 +1115,11 @@ namespace OpenSim
} }
} }
/// <summary>
/// Loads data and region objects from XML format.
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams"></param>
protected void LoadXml(string module, string[] cmdparams) protected void LoadXml(string module, string[] cmdparams)
{ {
m_log.Error("[CONSOLE]: PLEASE NOTE, load-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use load-xml2, please file a mantis detailing the reason."); m_log.Error("[CONSOLE]: PLEASE NOTE, load-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use load-xml2, please file a mantis detailing the reason.");
@ -1079,7 +1163,11 @@ namespace OpenSim
} }
} }
} }
/// <summary>
/// Serialize region data to XML2Format
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams"></param>
protected void SaveXml2(string module, string[] cmdparams) protected void SaveXml2(string module, string[] cmdparams)
{ {
if (cmdparams.Length > 2) if (cmdparams.Length > 2)
@ -1092,6 +1180,11 @@ namespace OpenSim
} }
} }
/// <summary>
/// Load region data from Xml2Format
/// </summary>
/// <param name="module"></param>
/// <param name="cmdparams"></param>
protected void LoadXml2(string module, string[] cmdparams) protected void LoadXml2(string module, string[] cmdparams)
{ {
if (cmdparams.Length > 2) if (cmdparams.Length > 2)