Blue Brain BioExplorer
core::ExtensionPlugin Class Reference

#include <ExtensionPlugin.h>

Inheritance diagram for core::ExtensionPlugin:
Collaboration diagram for core::ExtensionPlugin:

Public Member Functions

virtual ~ExtensionPlugin ()=default
 
virtual void init ()
 
virtual void preRender ()
 
virtual void postRender ()
 

Protected Attributes

PluginAPI_api {nullptr}
 

Friends

class PluginManager
 

Detailed Description

Defines the abstract representation of an extension plug-in. What we mean by extension is a set a functionalities that are not provided by the core of the application. For example, exposing a REST interface via HTTP, or streaming images to an distant display.

For a plugin to be loaded dynamically at runtime, the following function must be available in the library:

extern "C" core::ExtensionPlugin* brayns_plugin_create(int argc, const
char** argv)
core::ExtensionPlugin * brayns_plugin_create(const int argc, const char **argv)

It must return the instance of the plugin, and from hereon Core owns the plugin and calls preRender() and postRender() accordingly. In the shutdown sequence of Core, the plugin will be destructed properly.

Definition at line 49 of file ExtensionPlugin.h.

Constructor & Destructor Documentation

◆ ~ExtensionPlugin()

virtual core::ExtensionPlugin::~ExtensionPlugin ( )
virtualdefault

Member Function Documentation

◆ init()

virtual void core::ExtensionPlugin::init ( )
inlinevirtual

◆ postRender()

virtual void core::ExtensionPlugin::postRender ( )
inlinevirtual

Called from Core::postRender() after render() has finished.

Reimplemented in core::RocketsPlugin, core::DeflectPlugin, and bioexplorer::mediamaker::MediaMakerPlugin.

Definition at line 64 of file ExtensionPlugin.h.

◆ preRender()

virtual void core::ExtensionPlugin::preRender ( )
inlinevirtual

Called from Core::preRender() to prepare the engine based on the plugins' need for an upcoming render().

Reimplemented in core::VRPNPlugin, core::RocketsPlugin, core::DeflectPlugin, bioexplorer::BioExplorerPlugin, sonataexplorer::SonataExplorerPlugin, and bioexplorer::mediamaker::MediaMakerPlugin.

Definition at line 62 of file ExtensionPlugin.h.

Friends And Related Function Documentation

◆ PluginManager

friend class PluginManager
friend

Definition at line 68 of file ExtensionPlugin.h.

Member Data Documentation

◆ _api

PluginAPI* core::ExtensionPlugin::_api {nullptr}
protected

Definition at line 67 of file ExtensionPlugin.h.


The documentation for this class was generated from the following file: