merge with master
[platform/framework/web/wrt-plugins-common.git] / src / plugin-loading / plugin.cpp
index 9ab4518..7a468a4 100644 (file)
 #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),
@@ -40,8 +40,7 @@ Plugin::Plugin(const std::string &fileName,
     m_apiOnFrameLoad(apiOnFrameLoad),
     m_apiOnFrameUnload(apiOnFrameUnload),
     m_apiClassList(apiClassList)
-{
-}
+{}
 
 Plugin::~Plugin()
 {
@@ -59,10 +58,10 @@ PluginPtr Plugin::LoadFromFile(const std::string& fileName)
 {
     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(
@@ -100,22 +99,21 @@ PluginPtr Plugin::LoadFromFile(const std::string& fileName)
         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.");
@@ -151,7 +149,7 @@ PluginPtr Plugin::LoadFromFile(const std::string& fileName)
 
     // Parse all class definitions
     while (rawEntityListIterator->parent_name != NULL &&
-            rawEntityListIterator->object_name != NULL)
+           rawEntityListIterator->object_name != NULL)
     {
         // Logging
         LogInfo("#####");
@@ -193,12 +191,9 @@ std::string Plugin::GetFileName() const
 
 void Plugin::OnWidgetStart(int widgetId)
 {
-    if (NULL != m_apiOnWidgetStart)
-    {
+    if (NULL != m_apiOnWidgetStart) {
         (*m_apiOnWidgetStart)(widgetId);
-    }
-    else
-    {
+    } else {
         LogWarning("OnWidgetStart not set!");
     }
 }
@@ -206,48 +201,36 @@ void Plugin::OnWidgetStart(int widgetId)
 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!");
     }
 }