1 /*------------------------------------------------------------------------------
2 Name: I_Plugin.h
3 Project: xmlBlaster.org
4 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
5 ------------------------------------------------------------------------------*/
6 #ifndef _UTIL_PLUGIN_I_PLUGIN_H
7 #define _UTIL_PLUGIN_I_PLUGIN_H
8
9 #include <string>
10
11 namespace org { namespace xmlBlaster { namespace util { namespace plugin {
12
13 /**
14 * Interface for all plugins.
15 * Note: Currently this interface marks plugins only, it is not
16 * yet used to dynamically load shared libraries or dlls.
17 * @author <a href='mailto:xmlblast@marcelruff.info'>Marcel Ruff</a>
18 */
19 class Dll_Export I_Plugin
20 {
21 public:
22 virtual ~I_Plugin() {};
23
24 /**
25 * Get the name of the plugin.
26 * @return For example "SOCKET", "IOR", "SQLite", "RAM", "XERCES", ...
27 */
28 virtual std::string getType() = 0;
29
30 /**
31 * Get the version of the plugin.
32 * @return For example "1.0"
33 */
34 virtual std::string getVersion() = 0;
35 };
36
37 }}}} // namespace
38
39 #endif
syntax highlighted by Code2HTML, v. 0.9.1