2 * This file is part of buxton.
4 * Copyright (C) 2013 Intel Corporation
6 * Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sublicense, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice shall be
15 * included in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 void set_cb(BuxtonResponse response, void *data)
36 bool *status = (bool *)data;
37 if (buxton_response_status(response) != 0) {
44 void notify_cb(BuxtonResponse response, void *data)
46 bool *status = (bool *)data;
51 if (buxton_response_status(response) != 0) {
56 key = buxton_response_key(response);
57 name = buxton_key_get_name(key);
59 value = (int32_t*)buxton_response_value(response);
61 printf("key %s updated with new value %d\n", name, *value);
63 printf("key %s was removed\n", name);
74 BuxtonKey key1, key2, key3, key4;
82 if ((fd = buxton_open(&client)) < 0) {
83 printf("couldn't connect\n");
87 key1 = buxton_key_create("hello", "test1", NULL, INT32);
92 key2 = buxton_key_create("hello", "test2", NULL, INT32);
97 key3 = buxton_key_create("hello", "test3", NULL, INT32);
102 key4 = buxton_key_create("hello", "test1", "user", INT32);
107 if (buxton_register_notification(client, key1, notify_cb, &status, false)) {
108 printf("set call failed to run\n");
112 if (buxton_register_notification(client, key2, notify_cb, &status, false)) {
113 printf("set call failed to run\n");
117 if (buxton_register_notification(client, key3, notify_cb, &status, false)) {
118 printf("set call failed to run\n");
124 pfd[0].events = POLLIN;
126 r = poll(pfd, 1, 5000);
129 printf("poll error\n");
132 if (do_update >> 1 == 0) {
134 if (buxton_set_value(client, key4, &val, set_cb, &status, false)) {
135 printf("set value failed\n");
144 if (!buxton_client_handle_response(client)) {
145 printf("bad response from daemon\n");
150 printf("Failed to register for notification\n");
156 buxton_key_free(key1);
157 buxton_key_free(key2);
158 buxton_key_free(key3);
159 buxton_close(client);
165 * Editor modelines - http://www.wireshark.org/tools/modelines.html
170 * indent-tabs-mode: t
173 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
174 * :indentSize=8:tabSize=8:noTabs=false: