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 notify_cb(BuxtonResponse response, void *data)
36 bool *status = (bool *)data;
41 if (buxton_response_status(response) != 0) {
46 key = buxton_response_key(response);
47 name = buxton_key_get_name(key);
49 value = (int32_t*)buxton_response_value(response);
51 printf("key %s updated with new value %d\n", name, *value);
53 printf("key %s was removed\n", name);
69 int repoll_count = 10;
71 if ((fd = buxton_open(&client)) < 0) {
72 printf("couldn't connect\n");
76 key = buxton_key_create("hello", "test", NULL, INT32);
81 if (buxton_register_notification(client, key, notify_cb, &status, false)) {
82 printf("set call failed to run\n");
87 pfd[0].events = POLLIN;
89 r = poll(pfd, 1, 5000);
92 printf("poll error\n");
95 if (repoll_count-- > 0) {
101 if (!buxton_client_handle_response(client)) {
102 printf("bad response from daemon\n");
107 printf("Failed to register for notification\n");
114 if (buxton_unregister_notification(client, key, NULL, NULL, true)) {
115 printf("Unregistration of notification failed\n");
119 buxton_key_free(key);
120 buxton_close(client);
126 * Editor modelines - http://www.wireshark.org/tools/modelines.html
131 * indent-tabs-mode: t
134 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
135 * :indentSize=8:tabSize=8:noTabs=false: