<?xml version="1.0"?>
<NiniDocs>

<Interface name="IConfig">
	<docs>
		<summary>Configuration data access interface.</summary>
	</docs>

	<Property name="Name">
		<docs>
			<summary>
				Gets or sets the IConfig name.  If set then it renames
				this config with the parent source.  
			</summary>
		</docs>
	</Property>
	
	<Property name="ConfigSource">
		<docs>
			<summary>Returns the parent IConfigSource. </summary>
		</docs>
	</Property>

	<Property name="Alias">
		<docs>
			<summary>
				Gets the <see cref="AliasText"/> for this instance.
			</summary>
		</docs>
	</Property>
	
	<Method name="Contains">
		<docs>
			<summary>
				Returns true if the configuration key is present.  
			</summary>
			<param name="key">Configuration key.</param>
		</docs>
	</Method>
	
	<Method name="Get">
		<docs>
			<summary>
				Returns a string key value.  
			</summary>
			<param name="key">Configuration key.</param>
		</docs>
	</Method>

	<Method name="GetDefault">
		<docs>
			<summary>
				Returns a string key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>
	
	<Method name="GetExpanded">
		<docs>
			<summary>
				Returns the expanded string value.  This method does not replace 
				the other key values in the IConfigSource. 
			</summary>
			<param name="key">Configuration key.</param>
		</docs>
	</Method>

	<Method name="GetInt">
		<docs>
			<summary>
				Returns an integer key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<exception cref="System.Exception">
				No key was found.
			</exception>
		</docs>
	</Method>
	
	<Method name="GetIntDefault">
		<docs>
			<summary>
				Returns an integer key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>

	<Method name="GetIntAlias">
		<docs>
			<summary>
				Returns an integer key value from an alias.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="fromAlias">
				If set to true then this returns the alias configuration
				value.
			</param>
		</docs>
	</Method>

	<Method name="GetIntDefaultAlias">
		<docs>
			<summary>
				Returns an integer key value from an alias.    
			</summary>
			<param name="key">Configuration key.</param>
			<param name="fromAlias">
				If set to true then this returns the alias configuration
				value.
			</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>
	
	<Method name="GetLong">
		<docs>
			<summary>
				Returns an long key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<exception cref="System.Exception">
				No key was found.
			</exception>
		</docs>
	</Method>

	<Method name="GetLongDefault">
		<docs>
			<summary>
				Returns an integer key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>

	<Method name="GetBoolean">
		<docs>
			<summary>
				Returns a boolean key value. 
			</summary>
			<remarks>
				In order to get boolean values you will need to set the 
				<see cref="Alias"/> property correctly.  See the Nini Manual
				for more information.
			</remarks>
			<param name="key">Configuration key.</param>
			<exception cref="System.Exception">
				No key was found.
			</exception>
		</docs>
	</Method>
	
	<Method name="GetBooleanDefault">
		<docs>
			<summary>
				Returns a string key value.  
			</summary>
			<remarks>
				In order to get boolean values you will need to set the 
				<see cref="Alias"/> property correctly.  See the Nini Manual
				for more information.
			</remarks>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>
	
	<Method name="GetFloat">
		<docs>
			<summary>
				Returns a float key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<exception cref="System.Exception">
				Default value if the key is not found.
			</exception>
		</docs>
	</Method>
	
	<Method name="GetFloatDefault">
		<docs>
			<summary>
				Returns a float key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>
	
	<Method name="GetDouble">
		<docs>
			<summary>
				Returns a double key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<exception cref="System.Exception">
				No key was found.
			</exception>
		</docs>
	</Method>
	
	<Method name="GetDoubleDefault">
		<docs>
			<summary>
				Returns a double key value.  
			</summary>
			<param name="key">Configuration key.</param>
			<param name="defaultValue">
				Default value if the key is not found.
			</param>
		</docs>
	</Method>

	<Method name="Set">
		<docs>
			<summary>
				Sets a key value.
			</summary>
			<param name="key">Configuration key.</param>
			<param name="value">
				Value to set for the key.  The set value will be the result
				of the object's ToString value.
			</param>
		</docs>
	</Method>
	
	<Method name="Remove">
		<docs>
			<summary>
				Removes a configuration key.
			</summary>
			<param name="key">Configuration key.</param>
		</docs>
	</Method>
	
	<Method name="GetKeys">
		<docs>
			<summary>Returns an Array of the key strings.</summary>
		</docs>
	</Method>

	<Method name="GetValues">
		<docs>
			<summary>Returns an Array of all key values.</summary>
		</docs>
	</Method>
	
	<Event name="KeySet">
		<docs>
			<summary>
				Occurs when a key is set.    
			</summary>
			<remarks>
				This event occurs when the <see cref="Set"/> method is called.  
			</remarks>
		</docs>
	</Event>
	
	<Event name="KeyRemoved">
		<docs>
			<summary>
				Occurs when a key is removed.      
			</summary>
			<remarks>
				This event occurs when the <see cref="Remove"/> method is called.  
			</remarks>
		</docs>
	</Event>

</Interface>

</NiniDocs>
