SMath.Extensibility Namespace

 

Classes

ComponentInfo Implementation of IComponentInfo which can be retrieved from assembly metadata or filled with arbitrary values.
DefaultPluginAssemblyComparer Provides the default order of plug-in related instances.
DefaultPluginSingletonAttribute

Marks any implementation of IPlugin which does not have a related explicit implementation of IPluginSingleton so it depends on the default implementation of IPluginSingleton instead.

  Tip

This attribute can be omitted if IPluginSingleton is never implemented in the plug-in assembly.

PluginComponentInfo Base class of the plug-in metadata classes which implement IComponentInfo.
PluginStorageKey Type of key for IPluginStorage.

Interfaces

IComponentInfo Describes a high level application component or an assembly.
IPlugin

Base interface for the main class of any SMath Studio plug-in.

Instances of classes which implement IPlugin are created via IPluginSingleton and stored in ISessionProfile.Plugins.

IPluginAppContext Application-specific information which is passed as argument to any method of IPluginSingleton.
IPluginAssembly Describes the main plug-in assembly which is loaded into memory.
IPluginContext Session-specific information which is passed as argument to any method of IPlugin and of all interfaces derived from it.
IPluginModule Contains public information about a loaded plug-in. Extends IPluginAssembly by information about the actual state of the plug-in which may be changed during the lifetime of the application.
IPluginSingleton

Interface for static initialization of SMath Studio plug-in.

When the plug-in is being loaded, a singleton instance of any class which implements IPluginSingleton is created by means of CreateInstance(Type), initialized via Initialize(IPluginAppContext) and stored within the instance of IAppEnv.

Instances of IPlugin are constructed later via methods of IPluginSingleton during initialization of any ISessionProfile instance.

IPluginStorage Provides access to the storage of plug-in specific application-wide mutable data. Data which belong to the current plug-in can be modified, data belonging to the other plug-ins are read only.
IPluginSyncT Provides synchronized access to a resource of type T.

Delegates

PluginSyncHandlerT, TResult Type of handler which is used in IPluginSyncT.

Enumerations

PluginState

State of the plug-in.

Any PluginState value can be saved to the plug-in configuration file. Plug-ins having Removed value in configuration file are ignored when the program is being loaded.

The following state transitions are supported for in-memory plug-in objects:

Installed -> Disabled The plug-in is disabled. Any existing related instances of IPlugin are removed from all session profiles and disposed.
Disabled -> Installed The plug-in is enabled. Related instances of IPluginSingleton and IPlugin are created unless they already exist.
Installed -> Removed The plug-in is removed. Any existing related instances of IPluginSingleton and IPlugin are removed and disposed.
Disabled -> Removed The plug-in is removed. Any existing related instances of IPluginSingleton are removed and disposed.