Move from mulit-threaded to single-threaded dbus communication
[profile/ivi/persistence-client-library.git] / test / persistence_client_library_dbus_test.c
1 /******************************************************************************
2  * Project         Persistency
3  * (c) copyright   2012
4  * Company         XS Embedded GmbH
5  *****************************************************************************/
6 /******************************************************************************
7  * This Source Code Form is subject to the terms of the
8  * Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed
9  * with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 ******************************************************************************/
11  /**
12  * @file           persistence_client_library_dbus_test.c
13  * @ingroup        Persistence client library test
14  * @author         Ingo Huerner
15  * @brief          Test of persistence client library
16  * @see            
17  */
18
19 #include "../include/persistence_client_library_key.h"
20 #include "../include/persistence_client_library_file.h"
21 #include "../include/persistence_client_library_error_def.h"
22
23 #include <stdio.h>
24
25 #include <dlt/dlt.h>
26 #include <dlt/dlt_common.h>
27
28
29 int myChangeCallback(pclNotification_s * notifyStruct)
30 {
31    printf(" ==> * - * myChangeCallback * - *\n");
32
33    printf("Notification received ==> lbid: %d | resource_id: %s | seat: %d | user: %d | status: %d \n", notifyStruct->ldbid,
34          notifyStruct->resource_id,
35          notifyStruct->seat_no,
36          notifyStruct->user_no,
37          notifyStruct->pclKeyNotify_Status );
38
39    printf(" <== * - * myChangeCallback * - *\n");
40
41    return 1;
42 }
43
44
45 int main(int argc, char *argv[])
46 {
47    int ret = 0;
48    unsigned int shutdownReg = PCL_SHUTDOWN_TYPE_FAST | PCL_SHUTDOWN_TYPE_NORMAL;
49
50    printf("Dbus interface test application\n");
51
52    /// debug log and trace (DLT) setup
53    DLT_REGISTER_APP("noty","tests the persistence client library");
54    ret = pclInitLibrary("lt-persistence_client_library_dbus_test", shutdownReg);
55    printf("pclInitLibrary: %d\n", ret);
56
57    printf("Press a key to end application\n");
58    ret = pclKeyHandleOpen(0xFF, "posHandle/last_position", 0, 0);
59
60    printf("Register for change notification\n");
61    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link2", 2/*user_no*/, 1/*seat_no*/, &myChangeCallback);
62    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link3", 3/*user_no*/, 2/*seat_no*/, &myChangeCallback);
63    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link4", 4/*user_no*/, 1/*seat_no*/, &myChangeCallback);
64
65    ret = pclKeyRegisterNotifyOnChange(0xFF, "69",     1/*user_no*/, 2/*seat_no*/, &myChangeCallback);
66    printf("Reg => 69: %d\n", ret);
67    ret = pclKeyRegisterNotifyOnChange(0xFF, "70",     1/*user_no*/, 2/*seat_no*/, &myChangeCallback);
68    printf("Reg => 70: %d\n", ret);
69    ret = pclKeyRegisterNotifyOnChange(0xFF, "key_70", 1/*user_no*/, 2/*seat_no*/, &myChangeCallback);
70    printf("Reg => key_70: %d\n", ret);
71
72
73    printf("Press enter to unregister to notifications\n");
74    getchar();
75
76    ret = pclKeyUnRegisterNotifyOnChange(0x84, "links/last_link2", 2/*user_no*/, 1/*seat_no*/, &myChangeCallback);
77    ret = pclKeyUnRegisterNotifyOnChange(0x84, "links/last_link3", 3/*user_no*/, 2/*seat_no*/, &myChangeCallback);
78    ret = pclKeyUnRegisterNotifyOnChange(0x84, "links/last_link4", 4/*user_no*/, 1/*seat_no*/, &myChangeCallback);
79
80    printf("Press enter to register to notifications\n");
81    getchar();
82
83    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link2", 2/*user_no*/, 1/*seat_no*/, &myChangeCallback);
84    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link3", 3/*user_no*/, 2/*seat_no*/, &myChangeCallback);
85    ret = pclKeyRegisterNotifyOnChange(0x84, "links/last_link4", 4/*user_no*/, 1/*seat_no*/, &myChangeCallback);
86
87    printf("Press enter to end\n");
88    getchar();
89
90    sleep(2);
91    pclDeinitLibrary();
92
93
94    // unregister debug log and trace
95    DLT_UNREGISTER_APP();
96
97    dlt_free();
98
99    printf("By\n");
100    return ret;
101 }