3 * This file is part of Tulip (www.tulip-software.org)
4 *
5 * Authors: David Auber and the Tulip development Team
6 * from LaBRI, University of Bordeaux 1 and Inria Bordeaux - Sud Ouest
7 *
8 * Tulip is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation, either version 3
11 * of the License, or (at your option) any later version.
12 *
13 * Tulip is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 * See the GNU General Public License for more details.
17 *
18 */
19
20#ifndef _TULIPWITHDEPENDENCY
21#define _TULIPWITHDEPENDENCY
22
23#include <list>
24#include <string>
25#include <typeinfo>
26#include <tulip/tulipconf.h>
27#include <tulip/TlpTools.h>
28
29namespace tlp {
30
31/**
32 * @ingroup Plugins
33 *
34 * @brief Represents a plugin's dependency to another plugin.
35 * In addition to maganing plugin registration, Tulip also handles a dependency mechanism between plugins.
36 * Every Tulip plugin inherits from the tlp::WithDependency interface which allows to declare that another plugin should be loaded in order for this plugin to run.
37 * When declaring a dependency, a plugin state the name and the version of the dependecy. This is done by calling tlp::WithDependency::addDependency()