Adapted content of start page (#936)
[heuristiclab.git] / HeuristicLab.PluginInfrastructure / Interfaces / IPlugin.cs
blob5a5395ea92e157c36c2340e9b3ee5c2ef5258477
1 #region License Information
2 /* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
5 * This file is part of HeuristicLab.
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
20 #endregion
22 using System;
23 using System.Collections.Generic;
24 using System.Text;
26 namespace HeuristicLab.PluginInfrastructure {
27 /// <summary>
28 /// Represents a plugin.
29 /// Plugin developers have to include exactly one class that implements this interface in one of the
30 /// assemblies of the plugin.
31 /// OnLoad() and OnUnLoad() are called by the framework when the plugin is loaded/unloaded.
32 /// </summary>
33 public interface IPlugin {
34 /// <summary>
35 /// Gets the name of the plugin.
36 /// </summary>
37 string Name { get; }
39 /// <summary>
40 /// Called by the framework whenever the plugin is loaded.
41 /// Plugins are loaded when a new application is started from the starter.
42 /// </summary>
43 void OnLoad();
45 /// <summary>
46 /// Called by the framework whenever the plugin is unloaded.
47 /// Plugins are unloaded when an application exits.
48 /// </summary>
49 void OnUnload();