// ****************************************************************
// 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;
///
/// The ISettingsStorage interface is implemented by all
/// types of backing storage for settings.
///
public interface ISettingsStorage : IDisposable
{
///
/// Load a setting from the storage.
///
/// Name of the setting to load
/// Value of the setting or null
object GetSetting( string settingName );
///
/// Remove a setting from the storage
///
/// Name of the setting to remove
void RemoveSetting( string settingName );
///
/// Remove a group of settings from the storae
///
/// Name of the group to remove
void RemoveGroup( string groupName );
///
/// Save a setting in the storage
///
/// Name of the setting to save
/// Value to be saved
void SaveSetting( string settingName, object settingValue );
///
/// Create a child storage of the same type
///
/// Name of the child storage
/// New child storage
ISettingsStorage MakeChildStorage( string name );
///
/// Load settings from external storage if required
/// by the implementation.
///
void LoadSettings();
///
/// Save settings to external storage if required
/// by the implementation.
///
void SaveSettings();
}
}