screwturn-4/PluginFramework/IProvider.cs
2009-09-30 13:47:13 +00:00

73 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace ScrewTurn.Wiki.PluginFramework {
/// <summary>
/// The base interface that all the Providers must implement. All the Provider Type-specific interfaces inherit from this one or from a one, either directly or from a derived interface.
/// </summary>
/// <remarks>This interface should not be implemented directly by a class.</remarks>
public interface IProviderV30 {
/// <summary>
/// Initializes the Storage Provider.
/// </summary>
/// <param name="host">The Host of the Component.</param>
/// <param name="config">The Configuration data, if any.</param>
/// <exception cref="ArgumentNullException">If <paramref name="host"/> or <paramref name="config"/> are <c>null</c>.</exception>
/// <exception cref="InvalidConfigurationException">If <paramref name="config"/> is not valid or is incorrect.</exception>
void Init(IHostV30 host, string config);
/// <summary>
/// Method invoked on shutdown.
/// </summary>
/// <remarks>This method might not be invoked in some cases.</remarks>
void Shutdown();
/// <summary>
/// Gets the Information about the Provider.
/// </summary>
ComponentInformation Information { get; }
/// <summary>
/// Gets a brief summary of the configuration string format, in HTML. Returns <c>null</c> if no configuration is needed.
/// </summary>
string ConfigHelpHtml { get; }
}
/// <summary>
/// Represents errors that occur while decoding the Provider's Configuration String.
/// </summary>
public class InvalidConfigurationException : Exception {
/// <summary>
/// Initializes a new instance of the <b>InvalidConfigurationException</b> class.
/// </summary>
public InvalidConfigurationException() : base() { }
/// <summary>
/// Initializes a new instance of the <b>InvalidConfigurationException</b> class.
/// </summary>
/// <param name="message">The error message.</param>
public InvalidConfigurationException(string message) : base(message) { }
/// <summary>
/// Initializes a new instance of the <b>InvalidConfigurationException</b> class.
/// </summary>
/// <param name="message">The error message.</param>
/// <param name="innerException">The inner Exception.</param>
public InvalidConfigurationException(string message, Exception innerException) : base(message, innerException) { }
/// <summary>
/// Initializes a new instance of the <b>InvalidConfigurationException</b> class.
/// </summary>
/// <param name="info">The serialization info.</param>
/// <param name="context">The streaming context.</param>
public InvalidConfigurationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
}
}