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
Next 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] (current)
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 =====