TerraLib and TerraView Wiki Page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
wiki:documentation:devguide:core:plugins [2016/11/21 10:38]
carolina.santos
wiki:documentation:devguide:core:plugins [2016/11/21 10:45]
carolina.santos [C++]
Line 15: Line 15:
   * AbstractPlugin   * AbstractPlugin
   * AbstractPluginEngine   * AbstractPluginEngine
 +  * CppPlugin
 +  * CppPluginProxy
   * CppPluginEngine   * CppPluginEngine
   * PluginEngineManager   * PluginEngineManager
Line 24: Line 26:
 The **AbstractPluginEngine** class defines the interface of objects capable of performing the creation and loading of plugins from a set of information defined by a **PluginInfo** structure. Each programming language or structuring form of a plugin should provide a specific implementation of this class. This class eases how to prepare the load environment of a plugin. The **AbstractPluginEngine** class defines the interface of objects capable of performing the creation and loading of plugins from a set of information defined by a **PluginInfo** structure. Each programming language or structuring form of a plugin should provide a specific implementation of this class. This class eases how to prepare the load environment of a plugin.
  
-The **CppPluginEngine** class inherits ​from the **AbstractPluginEngine** class and is capable of loading dynamic libraries that have an entry point defined by the ''​TERRALIB_PLUGIN_CALL_BACK_IMPL''​ macro.+The **PluginInfo** class is an object that is serialized from a JSON file and has attributes to model the basic information of a plugin, shown below: 
 + 
 +  * ''​name'':​ an unique internal value used to identify the plugin in the system. 
 +  * ''​display_name'':​ name to be displayed in the graphical interface. 
 +  * ''​description'':​ brief description of the plugin. 
 +  * ''​version'':​ plugin version. 
 +  * ''​release'':​ the launch date of the plugin. 
 +  * ''​engine'':​ the plugin engine type (C++, LUA, JAVA). 
 +  * ''​license_description'':​ a brief description of the plugin license. 
 +  * ''​license_URL'':​ an URL where you can find more information about the license. 
 +  * ''​site'':​ an URL pointing to the plugin'​s website. 
 +  * ''​provider'':​ information about the plugin developer. 
 +      * ''​name'':​ provider name. 
 +      * ''​site'':​ provider website. 
 +      * ''​email'':​ provider email. 
 +  * ''​dependencies'':​ a list of plugins required for the plugin to be used. 
 +  * ''​linked_libraries'':​ a list of linked libraries. 
 +  * ''​resources'':​ a list of features used by the plugin. 
 +  * ''​host_application'':​ host system information. 
 +      * ''​name'':​ system name. 
 +      * ''​version'':​ system version. 
 + 
 +The **CppPluginEngine** class derives ​from the **AbstractPluginEngine** class and is capable of loading dynamic libraries that have an entry point defined by the ''​TERRALIB_PLUGIN_CALL_BACK_IMPL''​ macro.
  
 **CppPluginEngine** class: **CppPluginEngine** class:
Line 75: Line 99:
 </​code>​ </​code>​
  
-The **PluginEngineManager** class is a singleton that will contain the record of all types of plugin loaders available in the system. The developer of new plugin loaders, classes derived from **AbstractPluginEngine**,​ should register objects in this singleton so TerraLib-based applications can load plugins.+The **PluginEngineManager** class is a singleton that will contain the record of all types of plugin loaders available in the system. The developer of new plugin loaders, classes derived from **AbstractPluginEngine**,​ should register objects in this singleton so TerraLib-based applications can load the plugins.
  
 The **PluginManager** class is a singleton that will manage the registration of all the plugins, allowing the loading, downloading,​ initialization and finalization of the plugins. The **PluginManager** class is a singleton that will manage the registration of all the plugins, allowing the loading, downloading,​ initialization and finalization of the plugins.
Line 263: Line 287:
 }  // end namespace te }  // end namespace te
 </​code>​ </​code>​
- 
-The **PluginInfo** class is an object that is serialized from a JSON file and has attributes to model the basic information of a plugin, shown below: 
- 
-  * ''​name'':​ an unique internal value used to identify the plugin in the system. 
-  * ''​display_name'':​ name to be displayed in the graphical interface. 
-  * ''​description'':​ brief description of the plugin. 
-  * ''​version'':​ plugin version. 
-  * ''​release'':​ the launch date of the plugin. 
-  * ''​engine'':​ the plugin engine type (C++, LUA, JAVA). 
-  * ''​license_description'':​ a brief description of the plugin license. 
-  * ''​license_URL'':​ an URL where you can find more information about the license. 
-  * ''​site'':​ an URL pointing to the plugin'​s website. 
-  * ''​provider'':​ information about the plugin developer. 
-      * ''​name'':​ provider name. 
-      * ''​site'':​ provider website. 
-      * ''​email'':​ provider email. 
-  * ''​dependencies'':​ a list of plugins required for the plugin to be used. 
-  * ''​linked_libraries'':​ a list of linked libraries. 
-  * ''​resources'':​ a list of features used by the plugin. 
-  * ''​host_application'':​ host system information. 
-      * ''​name'':​ system name. 
-      * ''​version'':​ system version. 
  
 ===== Examples ===== ===== Examples =====