#include <dlfcn.h>
Plugin::Plugin(const std::string &fileName,
- void *libHandle,
- on_widget_start_proc *apiOnWidgetStart,
- on_widget_init_proc *apiOnWidgetInit,
- on_widget_stop_proc *apiOnWidgetStop,
- on_frame_load_proc* apiOnFrameLoad,
- on_frame_unload_proc* apiOnFrameUnload,
- const ClassPtrList &apiClassList) :
+ void *libHandle,
+ on_widget_start_proc *apiOnWidgetStart,
+ on_widget_init_proc *apiOnWidgetInit,
+ on_widget_stop_proc *apiOnWidgetStop,
+ on_frame_load_proc* apiOnFrameLoad,
+ on_frame_unload_proc* apiOnFrameUnload,
+ const ClassPtrList &apiClassList) :
m_fileName(fileName),
m_libHandle(libHandle),
m_apiOnWidgetStart(apiOnWidgetStart),
m_apiOnFrameLoad(apiOnFrameLoad),
m_apiOnFrameUnload(apiOnFrameUnload),
m_apiClassList(apiClassList)
-{
-}
+{}
Plugin::~Plugin()
{
{
LogDebug("LoadFromFile" << fileName);
- LogDebug("Loading plugin: " << fileName);
-
void *dllHandle;
- dllHandle = dlopen(fileName.c_str(), RTLD_NOW);
+ dllHandle = dlopen(fileName.c_str(), RTLD_LAZY);
+
+ LogDebug("dlopen() done!");
if (dllHandle == NULL) {
LogError(
reinterpret_cast<get_widget_entity_map_proc *>(
dlsym(dllHandle, PLUGIN_GET_CLASS_MAP_PROC_NAME));
- if( getWidgetEntityMapProcPtr )
- {
+ if (getWidgetEntityMapProcPtr) {
rawClassList = (*getWidgetEntityMapProcPtr)();
- LogDebug("rawClassList : " << rawClassList << "by getWidgetClassMapProcPtr()");
- }
- else
- {
+ LogDebug(
+ "rawClassList : " << rawClassList <<
+ "by getWidgetClassMapProcPtr()");
+ } else {
rawClassList =
static_cast<const js_entity_definition_t *>(dlsym(dllHandle,
- PLUGIN_CLASS_MAP_NAME));
- LogDebug("rawClassList : " << rawClassList );
+ PLUGIN_CLASS_MAP_NAME));
+ LogDebug("rawClassList : " << rawClassList);
}
-
if (NULL == onWidgetStartProcPtr || NULL == onWidgetStopProcPtr ||
- /*NULL == onWidgetInitProcPtr ||*/ NULL == rawClassList) {
+ /*NULL == onWidgetInitProcPtr ||*/ NULL == rawClassList)
+ {
LogWarning("#####");
LogWarning(
"##### Warning: The following plugin does not support new plugin API.");
// Parse all class definitions
while (rawEntityListIterator->parent_name != NULL &&
- rawEntityListIterator->object_name != NULL)
+ rawEntityListIterator->object_name != NULL)
{
// Logging
LogInfo("#####");
void Plugin::OnWidgetStart(int widgetId)
{
- if (NULL != m_apiOnWidgetStart)
- {
+ if (NULL != m_apiOnWidgetStart) {
(*m_apiOnWidgetStart)(widgetId);
- }
- else
- {
+ } else {
LogWarning("OnWidgetStart not set!");
}
}
void Plugin::OnWidgetInit(feature_mapping_interface_t* mapping)
{
Assert(NULL != mapping && "NULL mapping interface provided");
- if (NULL != m_apiOnWidgetInit)
- {
+ if (NULL != m_apiOnWidgetInit) {
(*m_apiOnWidgetInit)(mapping);
- }
- else
- {
+ } else {
LogWarning("OnWidgetInit not set!");
}
}
void Plugin::OnWidgetStop(int widgetId)
{
- if (NULL != m_apiOnWidgetStop)
- {
+ if (NULL != m_apiOnWidgetStop) {
(*m_apiOnWidgetStop)(widgetId);
- }
- else
- {
+ } else {
LogWarning("OnWidgetStop not set!");
}
}
void Plugin::OnFrameLoad(java_script_context_t context)
{
- if (NULL != m_apiOnFrameLoad)
- {
+ if (NULL != m_apiOnFrameLoad) {
(*m_apiOnFrameLoad)(context);
- }
- else
- {
+ } else {
LogWarning("OnFrameLoad not set!");
}
}
void Plugin::OnFrameUnload(java_script_context_t context)
{
- if (NULL != m_apiOnFrameUnload)
- {
+ if (NULL != m_apiOnFrameUnload) {
(*m_apiOnFrameUnload)(context);
- }
- else
- {
+ } else {
LogWarning("OnFrameUnload not set!");
}
}