# class Plugin | Plugin support. More...
Contains pure virtuals
Full name | `TelEngine::Plugin`
Definition | `#include <yatengine.h>`
Inherits | TelEngine::DebugEnabler [public ], TelEngine::GenObject [public ]
Inherited by | ClientDriver, Driver, Module
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- explicit Plugin (const char* name, bool earlyInit = false)
- virtual ~Plugin ()
- virtual const String& toString () const
- virtual void* getObject (const String& name) const
- virtual void initialize ()
- virtual bool isBusy () const
- inline const String& name () const
- inline NamedCounter* objectsCounter () const
- bool earlyInit () const

## Detailed Description

Initialization and information about plugins. Plugins are located in shared libraries that are loaded at runtime.

     // Create static Plugin object by using the provided macro
     INIT_PLUGIN(Plugin);

explicit Plugin (const char* name, bool earlyInit = false) | ### Plugin

Creates a new Plugin container.

Parameters:

name | the undecorated name of the library that contains the plugin
earlyInit | True to initialize the plugin early

~Plugin () | ### ~Plugin

[virtual]

Destroys the plugin. The destructor must never be called directly - the Loader will do it when the shared object's reference count reaches zero.

const String& toString () | ### toString

[const virtual]

Get a string representation of this object

Returns: Name of the plugin

Reimplemented from GenObject.

void* getObject (const String& name) | ### getObject

[const virtual]

Get a pointer to a derived class given that class name

Parameters:

name | Name of the class we are asking for

Returns: Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from GenObject.

void initialize () | ### initialize

[pure virtual]

Initialize the plugin after it was loaded and registered.

bool isBusy () | ### isBusy

[const virtual]

Check if the module is actively used.

Returns: True if the plugin is in use, false if should be ok to restart

inline const String& name () | ### name

[const]

Retrieve the name of the plugin

Returns: The plugin's name as String

inline NamedCounter* objectsCounter () | ### objectsCounter

[const]

Retrive the objects counter associated to this plugin

Returns: Pointer to plugin's objects counter or NULL

bool earlyInit () | ### earlyInit

[const]

Check if the module is to be initialized early

Returns: True if the module should be initialized before regular ones

Generated by: paulc on bussard on Fri May 8 12:37:22 2015, using kdoc 2.0a54.