Throw(Exception);
}
+ m_widgetId = widgetId;
+
if (!m_pluginOwners++) {
DPL::Log::LogSystemSingleton::Instance().SetTag("SECURITY_DAEMON");
ace_return_t ret = ace_client_initialize(Wrt::Popup::run_popup);
DPL::Log::LogSystemSingleton::Instance().SetTag("WRT_PLUGINS");
Assert(ACE_OK == ret);
- m_widgetId = widgetId;
}
}
#include <dpl/wrt-dao-ro/widget_dao_read_only.h>
-PluginContainerSupport::PluginContainerSupport() : m_initialized(false)
+PluginContainerSupport::PluginContainerSupport() :
+ m_initialized(false),
+ m_widgetHandle(0)
{
// Reading root plugins list from so files
readRootPluginsList();
void PluginContainerSupport::Initialize(int widgetHandle)
{
+ if (isInitialized() == true && m_widgetHandle != widgetHandle) {
+ // re-initialize required
+ m_initialized = false;
+
+ m_pluginModels.clear();
+ m_featureModels.clear();
+ }
+
if (isInitialized() == false) {
+ m_initialized = true;
+ m_widgetHandle = widgetHandle;
+
readAllowedPlugins(widgetHandle);
readRootPlugins(widgetHandle);
}
registerPluginModel(dt->pluginHandle);
registerFeatureModel(data->first, dt, deviceCapabilities);
}
-
- m_initialized = true;
}
void PluginContainerSupport::readRootPlugins(int widgetHandle)
} else {
_D("Not defined app type");
}
- m_initialized = true;
}
void PluginContainerSupport::registerFeatureModel(
bool m_initialized;
+ int m_widgetHandle;
+
private:
// Reading
void readRootPluginsList();
{
return m_initialized;
}
+ bool isInitialized(int widgetHandle)
+ {
+ return (m_initialized && m_widgetHandle == widgetHandle);
+ }
void Initialize(int widgetHandle);
void registerPluginModel(WrtDB::DbPluginHandle handle);
std::list<std::string> getAllowedFeatures(int widgetHandle) const;
{
_D("========== start session START ==========");
- if (!m_pluginsSupport->isInitialized()) {
+ if (!m_pluginsSupport->isInitialized(widgetHandle)) {
m_pluginsSupport->Initialize(widgetHandle);
}
auto sessionIt = m_sessions.find(context);