Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3.0/sources/HeuristicLab.PluginInfrastructure/Interfaces/IPlugin.cs @ 2023

Last change on this file since 2023 was 2, checked in by swagner, 17 years ago

Added HeuristicLab 3.0 sources from former SVN repository at revision 52

File size: 2.5 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
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.
11 *
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.
16 *
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/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Text;
25
26namespace 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. Plugin developers can use the properties of this interface to store
31  /// plugin data (name, version, files, update location ...).
32  /// The methods OnInstall(), OnDelete(), OnPreUpdate(), OnPostUpdate() are called by the framework
33  /// when the corresponding actions are executed. This mechanism allows that the plugin reacts to such
34  /// events. For instance to store plugin specific settings.
35  /// </summary>
36  interface IPlugin {
37    string Name { get; }
38    Version Version { get; }
39    /// <summary>
40    /// a list of all files that are bundled with this plugin including all assembly files (*.dll)
41    /// </summary>
42    string[] Files { get; }
43
44    /// <summary>
45    /// called by the framework after the plugin was successfully installed
46    /// </summary>
47    void OnInstall();
48    /// <summary>
49    /// called by the framework before the files of the plugin are deleted
50    /// </summary>
51    void OnDelete();
52    /// <summary>
53    /// called by the framework before the files of the plugin are deleted for an update
54    /// OnPreUpdate() is sent only to the old instance of the plugin
55    /// </summary>
56    void OnPreUpdate();
57    /// <summary>
58    /// called by the framework after the updated files for the plugin have been installed
59    /// OnPostUpdate() is sent only to the new updated instance of the plugin
60    /// </summary>
61    void OnPostUpdate();
62  }
63}
Note: See TracBrowser for help on using the repository browser.