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