Split subsystems loading

BZ: 122982

The CSystemClass::loadSubsystems was too long.

Create a subfunction to load subsystems defined in shared libraries.

Change-Id: I8f40ee271f25d0996e1976d8ee2ef6c12581d1d4
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/118192
Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com>
Tested-by: Barthes, FabienX <fabienx.barthes@intel.com>
Reviewed-by: cactus <cactus@intel.com>
Tested-by: cactus <cactus@intel.com>
diff --git a/parameter/SystemClass.h b/parameter/SystemClass.h
index 3ff80e4..ee71e5f 100644
--- a/parameter/SystemClass.h
+++ b/parameter/SystemClass.h
@@ -78,6 +78,16 @@
     // base
     virtual bool childrenAreDynamic() const;
 
+    /** Load shared libraries subsystem plugins.
+     *
+     * @param[out] lstrError is the list of error that occured during loadings.
+     * @param[in] pSubsystemPlugins The plugins to load.
+     *
+     * @return true if all plugins have been succesfully loaded, false otherwises.
+     */
+    bool loadSubsystemsFromSharedLibraries(list<string>& lstrError,
+                                           const CSubsystemPlugins* pSubsystemPlugins);
+
     // Plugin symbol computation
     static string getPluginSymbol(const string& strPluginPath);
 
@@ -88,6 +98,8 @@
      * @param[out] lstrError is the list of error that occured during loadings.
      *
      * @return true if at least one plugin has been succesfully loaded, false otherwise.
+     *         When false is returned, some plugins MIHGT have been loaded
+     *         but the lstrPluginFiles is accurate.
      */
     bool loadPlugins(list<string>& lstrPluginFiles, list<string>& lstrError);