using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ion.Scripting
{
///
/// Represents a stub for Ion plugins. This class cannot be instantiated.
///
public abstract class IonPlugin
{
#region Fields
protected string mName;
protected string mDescription;
protected string mAuthor;
protected Version mVersion;
protected IonPluginHost mHost;
#endregion
#region Properties
///
/// Gets the name of this plugin.
///
public string Name
{
get { return mName; }
}
///
/// Gets the description of this plugin.
///
public string Description
{
get { return mDescription; }
}
///
/// Gets the author of this plugin.
///
public string Author
{
get { return mAuthor; }
}
///
/// Gets the System.Version object representing the version of this plugin.
///
public Version Version
{
get { return mVersion; }
}
///
/// Gets or sets the IonPluginHost of this plugin. The plugin will call back to the host during runtime.
///
public IonPluginHost Host
{
get { return mHost; }
set { mHost = value; }
}
#endregion
#region Methods
///
/// This method is called when the plugin is loaded by the host.
///
public abstract void Load();
///
/// This method is called when the plugin is unloaded by the host.
///
public abstract void Unload();
#endregion
}
}