/// <summary> /// Launches the application given its name (matching it on the "app/config/launch-config.xml" configuration file). /// </summary> /// <param name="appName">App name for the application to be launched.</param> /// <param name="query">Query string in the format: "relative_url?param1=value1¶m2=value2". Set it to null for not sending extra launch data.</param> public void LaunchApplication(string appName, string query) { App app = this.GetApplication(appName); if (app != null) { this.LaunchApplication(app, query); } else { // TODO - check if an alert notification is required SystemLogger.Log(SystemLogger.Module.CORE, "Application with name [" + appName + "] couldn't be found in the configuration file"); } }
/// <summary> /// Load launch config file /// </summary> protected void LoadLaunchConfig() { try { // FileStream to read the XML document. byte[] configFileRawData = GetConfigFileBinaryData(); if (configFileRawData != null) { XmlSerializer serializer = new XmlSerializer(typeof(LaunchConfig)); launchConfig = (LaunchConfig)serializer.Deserialize(new MemoryStream(configFileRawData)); } } catch (Exception e) { SystemLogger.Log(SystemLogger.Module.CORE, "Error when loading launch configuration", e); launchConfig = new LaunchConfig(); // reset launch config mapping when the services could not be loaded for any reason } }
/// <summary> /// Default method, to be overrided by platform implementation. /// </summary> /// <returns> /// A <see cref="Stream"/> /// </returns> public virtual byte[] GetConfigFileBinaryData() { SystemLogger.Log(SystemLogger.Module.CORE, "# Loading Launch Apps Configuration from file: " + LaunchConfigFile); Stream fs = new FileStream(LaunchConfigFile, FileMode.Open); if (fs != null) { return(((MemoryStream)fs).GetBuffer()); } else { return(null); } }
/// <summary> /// Returns the available memory uses from MemoryUse enumeration. /// </summary> /// <returns>Array of available memory uses, or empty array if error or no memory uses available.</returns> public MemoryUse[] GetMemoryUses() { List <MemoryUse> memUsesList = new List <MemoryUse> (); try { Type enumType = typeof(MemoryUse); IEnumerator <MemoryUse> enumerator = (Enum.GetValues(enumType) as IEnumerable <MemoryUse>).GetEnumerator(); while (enumerator.MoveNext()) { memUsesList.Add(enumerator.Current); } } catch (Exception e) { SystemLogger.Log(SystemLogger.Module.CORE, "Exception getting available memory uses", e); } return(memUsesList.ToArray()); }