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 } }