//****************************************************************************************************** // ServiceMonitorBase.cs - Gbtc // // Copyright © 2013, Grid Protection Alliance. All Rights Reserved. // // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See // the NOTICE file distributed with this work for additional information regarding copyright ownership. // The GPA licenses this file to you under the Eclipse Public License -v 1.0 (the "License"); you may // not use this file except in compliance with the License. You may obtain a copy of the License at: // // http://www.opensource.org/licenses/eclipse-1.0.php // // Unless agreed to in writing, the subject software distributed under the License is distributed on an // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the // License for the specific language governing permissions and limitations. // // Code Modification History: // ---------------------------------------------------------------------------------------------------- // 07/08/2013 - Stephen C. Wills // Generated original version of source code. // //****************************************************************************************************** using System; using GSF.Adapters; using GSF.Configuration; namespace GSF.ServiceProcess { /// /// Base class for service monitors. /// public abstract class ServiceMonitorBase : Adapter, IServiceMonitor { /// /// Handles notifications from the service that occur /// on an interval to indicate that the service is /// still running. /// public virtual void HandleServiceHeartbeat() { } /// /// Handles messages received by the service /// whenever the service encounters an error. /// /// The error received from the service. public virtual void HandleServiceError(Exception ex) { } /// /// Handles messages sent by a client. /// /// Arguments provided by the client. public virtual void HandleClientMessage(string[] args) { } /// /// Loads saved settings from the config file if the property is set to true. /// /// has a value of null or empty string. public override void LoadSettings() { base.LoadSettings(); if (PersistSettings) { // Load settings from the specified category. ConfigurationFile config = ConfigurationFile.Current; CategorizedSettingsElementCollection settings = config.Settings[SettingsCategory]; settings.Add("Enabled", "False", "Determines if service monitor should be enabled at startup."); Enabled = settings["Enabled"].ValueAsBoolean(false); } } /// /// Saves settings to the config file if the property is set to true. /// /// has a value of null or empty string. public override void SaveSettings() { base.SaveSettings(); if (PersistSettings) { // Load settings from the specified category. ConfigurationFile config = ConfigurationFile.Current; CategorizedSettingsElementCollection settings = config.Settings[SettingsCategory]; settings["Enabled", true].Update(Enabled); config.Save(); } } } }