namespace {
const char *STANDARD_FEATURES_LIST_FILE = "standard-features-list";
-const char *TIZEN_ROOT_FEATURES = "http://tizen.org/privilege/tizen";
}
using namespace WrtDB;
{
// Reading standard features list from file
readStandardFeaturesList();
+
+ // Reading root plugins list from so files
+ readRootPluginsList();
}
PluginContainerSupport::~PluginContainerSupport()
WidgetDAOReadOnly dao(widgetHandle);
WidgetType appType = dao.getWidgetType();
if (appType == WrtDB::APP_TYPE_TIZENWEBAPP) {
- WrtDB::FeatureDAOReadOnly dao(TIZEN_ROOT_FEATURES);
- registerPluginModel(dao.GetPluginHandle());
+ FOREACH(it_rootPluginHandle, m_rootPluginsList)
+ {
+ LogDebug("*it_rootPluginHandle: " << *it_rootPluginHandle);
+ registerPluginModel(*it_rootPluginHandle);
+ }
} else {
LogDebug("Not defined app type");
}
standardFeatureFile.close();
}
+void PluginContainerSupport::readRootPluginsList()
+{
+ LogDebug("Reading root plugins list from so files...");
+
+ PluginHandleList pluginHandleList =
+ PluginDAOReadOnly::getPluginHandleList();
+
+ FOREACH(it_pluginHandle, pluginHandleList)
+ {
+ PluginDAOReadOnly pluginDao(*it_pluginHandle);
+ PluginHandleSetPtr retDependencies;
+ retDependencies = pluginDao.getLibraryDependencies();
+ if (retDependencies->empty()) {
+ LogDebug("Root plugin Handle: " << *it_pluginHandle);
+ m_rootPluginsList.push_back(*it_pluginHandle);
+ }
+ }
+}
+
FeatureModelPtr
PluginContainerSupport::getFeatureModel(const std::string &name) const
{
}
PluginContainerSupport::PluginsList
+PluginContainerSupport::getRootPlugins() const
+{
+ PluginsList plugins;
+
+ FOREACH(it, m_rootPluginsList)
+ {
+ PluginModelPtr plugin = getPluginModelById(*it);
+ if (!plugin) {
+ LogError("PluginModel not found");
+ continue;
+ }
+
+ plugins.push_back(plugin);
+ }
+
+ return plugins;
+}
+
+PluginContainerSupport::PluginsList
PluginContainerSupport::getPluginsList() const
{
LogDebug("");