1 // ****************************************************************
2 // Copyright 2002-2003, Charlie Poole
3 // This is free software licensed under the NUnit license. You may
4 // obtain a copy of the license at http://nunit.org/?p=license&r=2.4
5 // ****************************************************************
12 /// The ISettingsStorage interface is implemented by all
13 /// types of backing storage for settings.
15 public interface ISettingsStorage
: IDisposable
18 /// Load a setting from the storage.
20 /// <param name="settingName">Name of the setting to load</param>
21 /// <returns>Value of the setting or null</returns>
22 object GetSetting( string settingName
);
25 /// Remove a setting from the storage
27 /// <param name="settingName">Name of the setting to remove</param>
28 void RemoveSetting( string settingName
);
31 /// Remove a group of settings from the storae
33 /// <param name="groupName">Name of the group to remove</param>
34 void RemoveGroup( string groupName
);
37 /// Save a setting in the storage
39 /// <param name="settingName">Name of the setting to save</param>
40 /// <param name="settingValue">Value to be saved</param>
41 void SaveSetting( string settingName
, object settingValue
);
44 /// Create a child storage of the same type
46 /// <param name="name">Name of the child storage</param>
47 /// <returns>New child storage</returns>
48 ISettingsStorage
MakeChildStorage( string name
);
51 /// Load settings from external storage if required
52 /// by the implementation.
57 /// Save settings to external storage if required
58 /// by the implementation.