63 lines
1.9 KiB
C#
Raw Normal View History

// ****************************************************************
// Copyright 2002-2003, Charlie Poole
// This is free software licensed under the NUnit license. You may
// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
// ****************************************************************
namespace NUnit.Util
{
using System;
/// <summary>
/// The ISettingsStorage interface is implemented by all
/// types of backing storage for settings.
/// </summary>
public interface ISettingsStorage : IDisposable
{
/// <summary>
/// Load a setting from the storage.
/// </summary>
/// <param name="settingName">Name of the setting to load</param>
/// <returns>Value of the setting or null</returns>
object GetSetting( string settingName );
/// <summary>
/// Remove a setting from the storage
/// </summary>
/// <param name="settingName">Name of the setting to remove</param>
void RemoveSetting( string settingName );
/// <summary>
/// Remove a group of settings from the storae
/// </summary>
/// <param name="groupName">Name of the group to remove</param>
void RemoveGroup( string groupName );
/// <summary>
/// Save a setting in the storage
/// </summary>
/// <param name="settingName">Name of the setting to save</param>
/// <param name="settingValue">Value to be saved</param>
void SaveSetting( string settingName, object settingValue );
/// <summary>
/// Create a child storage of the same type
/// </summary>
/// <param name="name">Name of the child storage</param>
/// <returns>New child storage</returns>
ISettingsStorage MakeChildStorage( string name );
/// <summary>
/// Load settings from external storage if required
/// by the implementation.
/// </summary>
void LoadSettings();
/// <summary>
/// Save settings to external storage if required
/// by the implementation.
/// </summary>
void SaveSettings();
}
}