PFW: Enhance subsytem libraries load mechanism
BZ: 24093
If a subsystem library depends on another one, the libraries have to be loaded
in a predefined order.
the previous recovery mechanism on PFW was: When a subsystem library does not
load because of a missing dependency, it tries to load all the other subsystems
before trying one more time to load the failing library.
Unfortunately, Android linker does not allow several try when loading a
library.
In consequence, this patch implements a new mechanism to load its subsystem
libraries.
For this new mechanism, the PFW will load the subsystem libraries in the order
they are disposed in the file ParameterFrameworkConfiguration.xml
Change-Id: I39b97e33c77a6b4392c3813cd3d780e10e3b60f8
Signed-off-by: Guillaume Denneulin <guillaumex.denneulin@intel.com>
Reviewed-on: http://android.intel.com:8080/35903
Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com>
Tested-by: Barthes, FabienX <fabienx.barthes@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
diff --git a/parameter/SystemClass.h b/parameter/SystemClass.h
index 512c5ec..ead5565 100644
--- a/parameter/SystemClass.h
+++ b/parameter/SystemClass.h
@@ -31,6 +31,7 @@
#pragma once
#include "ConfigurableElement.h"
+#include "SubsystemPlugins.h"
#include <list>
class CSubsystemLibrary;
@@ -42,7 +43,8 @@
virtual ~CSystemClass();
// Called from parent before actual init
- bool loadSubsystems(string& strError, const vector<string>& astrPluginFolderPaths);
+ bool loadSubsystems(string& strError, const CSubsystemPlugins* pSubsystemPlugins);
+ // Subsystem factory
const CSubsystemLibrary* getSubsystemLibrary() const;
// base
@@ -62,7 +64,7 @@
// Plugin loading
bool loadPlugins(list<string>& lstrPluginFiles, string& strError);
- // ref only
+ // Subsystem factory
CSubsystemLibrary* _pSubsystemLibrary;
};