1 #ifndef PERSISTENCY_CLIENT_LIBRARY_H
2 #define PERSISTENCY_CLIENT_LIBRARY_H
4 /******************************************************************************
7 * Company XS Embedded GmbH
8 *****************************************************************************/
9 /******************************************************************************
10 * This Source Code Form is subject to the terms of the
11 * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed
12 * with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
13 ******************************************************************************/
15 * \file persistence_client_library.h
16 * \ingroup Persistence client library
17 * \author Ingo Huerner (XSe) / Guy Sagnes (Continental)
18 * \brief Header of the persistence client library.
19 * Library provides an API to access persistent data
22 * 25/06/13 Ingo Hürner 1.0.0 - Rework of Init functions
23 * 04/11/13 Ingo Hürner 2.0.0 - Added define for shutdown type none
26 /** \ingroup GEN_PERS */
27 /** \defgroup PERS_CLIENT Client: initialisation access
30 /** \defgroup PERS_CLIENT_INTERFACE API document
38 /** \defgroup PCL_DEFINES_API Defines, Struct, Enum
42 #define PERSIST_API_INTERFACE_VERSION (0x01030000U)
47 /** \defgroup PCL_OVERALL functions for Library Initialisation
48 * The following functions have to be called to allow intialisation of the internal interfaces.
52 #define PCL_SHUTDOWN 1 /// trigger shutdown
53 #define PCL_SHUTDOWN_CANEL 0 // cancel shutdown
55 #define PCL_SHUTDOWN_TYPE_FAST 2 /// Client registered for fast lifecycle shutdown
56 #define PCL_SHUTDOWN_TYPE_NORMAL 1 /// Client registered for normal lifecycle shutdown
57 #define PCL_SHUTDOWN_TYPE_NONE 0 /// Client does not register to lifecycle shutdown
61 * @brief initalize client library.
62 * This function will be called by the process using the PCL during startup phase.
64 * @attention This function is currently N O T part of the GENIVI compliance specification
66 * @param appname application name, the name must be a unique name in the system
67 * @param shutdownMode shutdown mode ::PCL_SHUTDOWN_TYPE_FAST or ::PCL_SHUTDOWN_TYPE_NORMAL
69 * @return positive value: success;
70 * On error a negative value will be returned with the following error codes:
71 * ::EPERS_NOT_INITIALIZED, ::EPERS_INIT_DBUS_MAINLOOP,
72 * ::EPERS_REGISTER_LIFECYCLE, ::EPERS_REGISTER_ADMIN
74 int pclInitLibrary(const char* appname, int shutdownMode);
78 * @brief deinitialize client library
79 * This function will be called during the shutdown phase of the process which uses the PCL.
81 * @attention This function is currently N O T part of the GENIVI compliance specification
83 * @return positive value: success;
84 * On error a negative value will be returned.
86 int pclDeinitLibrary(void);
92 * @brief pclLifecycleSet client library
93 * This function can be called if to flush and write back the data form cache to memory device.
94 * The function is only available if PCL_SHUTDOWN_TYPE_NONE has been used in pclInitLibrary.
96 * @attention This function is currently N O T part of the GENIVI compliance specification
97 * @attention In order to prevent misuse of this function the cancel shutdown request
98 * can only be called 3 times per lifecycle.
100 * @parm PCL_SHUTDOWN for write back data when shutdown is requested,
101 * and PCL_SHUTDOWN_CANEL when shutdown cancel request has been received.
103 * @return positive value: success;
104 * On error a negative value will be returned with the following error codes:
105 * ::EPERS_COMMON, :.EPERS_MAX_CANCEL_SHUTDOWN, ::EPERS_SHTDWN_NO_PERMIT
107 int pclLifecycleSet(int shutdown);
116 /** \} */ /* End of API */
117 /** \} */ /* End of MODULE */
120 #endif /* PERSISTENCY_CLIENT_LIBRARY_H */