Protected global variables with mutex; minor optimizations; corrected doxygen documen...
[profile/ivi/persistence-client-library.git] / include / persistence_client_library.h
index c0735ff..b63ff0f 100644 (file)
  *           The Persistence Client Library (PCL) provides an API to applications to read and write persistent data
  *           via a key-value and a file interface.<br>
  *           It also provide a plugin API to allow users to extend the client library with custom storage solutions.
+ *
+ * @section doc Further documentation
+ * @subsection docUser User Manual
+ *          There is a a user manual for the client library available,
+ *          see: http://docs.projects.genivi.org/persistence-client-library/1.0/GENIVI_Persistence_Client_Library_UserManual.pdf
+ *
+ * @subsection docArch Architecture Manual
+ *          For more information about the persistence architecture,
+ *          see: http://docs.projects.genivi.org/persistence-client-library/1.0/GENIVI_Persistence_ArchitectureDocumentation.pdf
+ *
+ *
+ * @section plugin Custom plugin configuration file
+ *          @attention
+ *          The plugin configuration file has been changed!
+ *
+ *          The configuration file has now the following format<br>
+ *          &lt;predefinedPluginName&gt; &lt;pathAndLibraryName&gt; &lt;loadingType&gt; &lt;initType&gt;
+ *
+ *          <b>Predefined plugin name</b><br>
+ *          Use one of the following names:
+ *          - early     => predefined custom library for early persistence
+ *          - secure    => predefined custom library for secure persistence
+ *          - emergency => predefined custom library for emengency persistence
+ *          - hwinfo    => predefined custom library for hw information
+ *          - custom1   => custom library 1
+ *          - custom2   => custom library 2
+ *          - custom3   => custom library 3
+ *
+ *          <b>Path and library name:</b><br>
+ *          The name and path of the library
+ *
+ *          <b>Valid loading type:</b>
+ *          - "init" ==> if the plugin must be laoding during the pclInitLibrary function
+ *          - "on"     ==> if on demand laoding of the plugin is requested. The plugin will be loaded
+ *          when a plugin function will be loaded the first time
+ *
+ *          <b>Init Type:</b>
+ *          - sync ==> use the "plugin_init" function for plugin initialization
+ *          - async ==> use the "plugin_init_async" function for plugin initialization
+ *
+ *          <b>Example:</b><br>
+ *          hwinfo /usr/local/lib/libhwinfoperscustom.so init async
+ *
+ *          @note
+ *          Make sure that there is only ONE blank between each entry and no blank at the end of the file.
+ *          The parser has been optimized for speed, so there is less error checking.
  */
 
 
@@ -89,7 +135,7 @@ extern "C" {
  *
  * @return positive value: success;
  *   On error a negative value will be returned with the following error codes:
- *   ::EPERS_NOT_INITIALIZED, ::EPERS_INIT_DBUS_MAINLOOP,
+ *   ::EPERS_NOT_INITIALIZED, ::EPERS_DBUS_MAINLOOP,
  *   ::EPERS_REGISTER_LIFECYCLE, ::EPERS_REGISTER_ADMIN
  */
 int pclInitLibrary(const char* appname, int shutdownMode);
@@ -123,12 +169,12 @@ int pclDeinitLibrary(void);
  *            In the next lifecycle the application can store data again until the limit above
  *            has been reached.
  *
- * @parm PCL_SHUTDOWN for write back data when shutdown is requested,
- *       and PCL_SHUTDOWN_CANEL when shutdown cancel request has been received.
+ * @param shutdown PCL_SHUTDOWN for write back data when shutdown is requested,
+ *        and PCL_SHUTDOWN_CANEL when shutdown cancel request has been received.
  *
  * @return positive value: success;
  *   On error a negative value will be returned with the following error codes:
- *   ::EPERS_COMMON, :.EPERS_MAX_CANCEL_SHUTDOWN, ::EPERS_SHTDWN_NO_PERMIT
+ *   ::EPERS_COMMON, ::EPERS_SHUTDOWN_MAX_CANCEL, ::EPERS_SHUTDOWN_NO_PERMIT
  */
 int pclLifecycleSet(int shutdown);