'\" t .TH "BUXTON_CREATE_GROUP" "3" "buxton 1" "buxton_create_group" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" buxton_create_group, buxton_remove_group \- Manage groups within buxton .SH "SYNOPSIS" .nf \fB #include \fR .sp \fB int buxton_create_group(BuxtonClient \fIclient\fB, .br BuxtonKey \fIkey\fB, .br BuxtonCallback \fIcallback\fB, .br void *\fIdata\fB, .br bool \fIsync\fB) .sp .br int buxton_remove_group(BuxtonClient \fIclient\fB, .br BuxtonKey \fIkey\fB, .br BuxtonCallback \fIcallback\fB, .br void *\fIdata\fB, .br bool \fIsync\fB) \fR .fi .SH "DESCRIPTION" .PP These functions are used for managing groups within buxton\&. Before a value can be set for a key-name, the group for the key-name must be created\&. A group can be created by calling \fBbuxton_create_group\fR(3). Creating a group is done on behalf of \fIclient\fR, and the BuxtonKey, \fIkey\fR, is group to be created\&. For more information about BuxtonKeys, see \fBbuxton_key_create\fR(3)\&. Groups can also be removed by calling \fBbuxton_remove_group\fR(3)\&. Note that this operation is recursive, removing all key-names within a group, and the group itself\&. Both functions accept optional callback functions to register with the daemon, referenced by the \fIcallback\fR argument; the callback function is called upon completion of the operation\&. The \fIdata\fR argument is a pointer to arbitrary userdata that is passed along to the callback function\&. Additonally, the \fIsync\fR argument controls whether the operation should be synchronous or not; if \fIsync\fR is false, the operation is asynchronous\&. .SH "CODE EXAMPLE" .PP An example for \fBbuxton_create_group\fR(3): .nf .sp #define _GNU_SOURCE #include #include #include #include #include "buxton.h" void create_cb(BuxtonResponse response, void *data) { if (buxton_response_status(response) != 0) { printf("Failed to create group\\n"); } else { printf("Created group\\n"); } } int main(void) { BuxtonClient client; BuxtonKey key; struct pollfd pfd[1]; int r; int fd; if ((fd = buxton_open(&client)) < 0) { printf("couldn't connect\\n"); return -1; } key = buxton_key_create("hello", NULL, "user", STRING); if (!key) { return -1; } if (buxton_create_group(client, key, create_cb, NULL, false)) { printf("create group call failed to run\\n"); return -1; } pfd[0].fd = fd; pfd[0].events = POLLIN; pfd[0].revents = 0; r = poll(pfd, 1, 5000); if (r <= 0) { printf("poll error\\n"); return -1; } if (!buxton_client_handle_response(client)) { printf("bad response from daemon\\n"); return -1; } buxton_key_free(key); buxton_close(client); return 0; } .fi An example for \fBbuxton_remove_group\fR(3): .nf .sp #define _GNU_SOURCE #include #include #include #include #include "buxton.h" void remove_cb(BuxtonResponse response, void *data) { if (buxton_response_status(response) != 0) { printf("Failed to remove group\\n"); } else { printf("Removed group\\n"); } } int main(void) { BuxtonClient client; BuxtonKey key; struct pollfd pfd[1]; int r; int fd; if ((fd = buxton_open(&client)) < 0) { printf("couldn't connect\\n"); return -1; } key = buxton_key_create("hello", NULL, "user", STRING); if (!key) { return -1; } if (buxton_remove_group(client, key, remove_cb, NULL, false)) { printf("remove group call failed to run\\n"); return -1; } pfd[0].fd = fd; pfd[0].events = POLLIN; pfd[0].revents = 0; r = poll(pfd, 1, 5000); if (r <= 0) { printf("poll error\\n"); return -1; } if (!buxton_client_handle_response(client)) { printf("bad response from daemon\\n"); return -1; } buxton_key_free(key); buxton_close(client); return 0; } .fi .SH "RETURN VALUE" .PP Returns 0 on success, and a non\-zero value on failure\&. .SH "COPYRIGHT" .PP Copyright 2014 Intel Corporation\&. License: Creative Commons Attribution\-ShareAlike 3.0 Unported\s-2\u[1]\d\s+2, with exception for code examples found in the \fBCODE EXAMPLE\fR section, which are licensed under the MIT license provided in the \fIdocs/LICENSE.MIT\fR file from this buxton distribution\&. .SH "SEE ALSO" .PP \fBbuxton\fR(7), \fBbuxtond\fR(8), \fBbuxton\-api\fR(7) .SH "NOTES" .IP " 1." 4 Creative Commons Attribution\-ShareAlike 3.0 Unported .RS 4 \%http://creativecommons.org/licenses/by-sa/3.0/ .RE