Revieweed-by: Steven Dake <sdake@xxxxxxxxxx> On 03/05/2012 08:52 AM, Jan Friesse wrote: > Signed-off-by: Jan Friesse <jfriesse@xxxxxxxxxx> > --- > man/Makefile.am | 3 + > man/cpg_iteration_finalize.3.in | 67 ++++++++++++++++++++++++++ > man/cpg_iteration_initialize.3.in | 96 +++++++++++++++++++++++++++++++++++++ > man/cpg_iteration_next.3.in | 85 ++++++++++++++++++++++++++++++++ > man/cpg_overview.8 | 25 +++++++--- > man/index.html | 12 +++++ > 6 files changed, 280 insertions(+), 8 deletions(-) > create mode 100644 man/cpg_iteration_finalize.3.in > create mode 100644 man/cpg_iteration_initialize.3.in > create mode 100644 man/cpg_iteration_next.3.in > > diff --git a/man/Makefile.am b/man/Makefile.am > index d5feb71..69c536c 100644 > --- a/man/Makefile.am > +++ b/man/Makefile.am > @@ -54,6 +54,9 @@ autogen_man = cpg_context_get.3 \ > cpg_zcb_alloc.3 \ > cpg_zcb_free.3 \ > cpg_membership_get.3 \ > + cpg_iteration_finalize.3 \ > + cpg_iteration_initialize.3 \ > + cpg_iteration_next.3 \ > evs_dispatch.3 \ > evs_fd_get.3 \ > evs_finalize.3 \ > diff --git a/man/cpg_iteration_finalize.3.in b/man/cpg_iteration_finalize.3.in > new file mode 100644 > index 0000000..747d227 > --- /dev/null > +++ b/man/cpg_iteration_finalize.3.in > @@ -0,0 +1,67 @@ > +.\"/* > +.\" * Copyright (c) 2012 Red Hat, Inc. > +.\" * > +.\" * All rights reserved. > +.\" * > +.\" * Author: Jan Friesse (jfriesse@xxxxxxxxxx) > +.\" * > +.\" * This software licensed under BSD license, the text of which follows: > +.\" * > +.\" * Redistribution and use in source and binary forms, with or without > +.\" * modification, are permitted provided that the following conditions are met: > +.\" * > +.\" * - Redistributions of source code must retain the above copyright notice, > +.\" * this list of conditions and the following disclaimer. > +.\" * - Redistributions in binary form must reproduce the above copyright notice, > +.\" * this list of conditions and the following disclaimer in the documentation > +.\" * and/or other materials provided with the distribution. > +.\" * - Neither the name of the Red Hat, Inc. nor the names of its > +.\" * contributors may be used to endorse or promote products derived from this > +.\" * software without specific prior written permission. > +.\" * > +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE > +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > +.\" * THE POSSIBILITY OF SUCH DAMAGE. > +.\" */ > +.TH "CPG_ITERATION_FINALIZE" 3 "05/03/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" > + > +.SH NAME > +.P > +cpg_iteration_finalize \- Finalize iterator for members of CPG > + > +.SH SYNOPSIS > +.P > +\fB#include <corosync/cpg.h>\fR > + > +.P > +\fBcs_error_t > +cpg_iteration_finalize (cpg_iteration_handle_t \fIhandle\fB);\fR > + > +.SH DESCRIPTION > +.P > +The > +.B cpg_iteration_finalize > +function is used to free up memory asociated with iteration obtained by calling of > +.B cpg_iteration_initialize(3) > +function. > +The > +.I handle > +argument is iterator handle obtained by > +.B cpg_iteration_initialize(3) > +function. > + > +.SH RETURN VALUE > +This call returns the CS_OK value if successful. CS_ERR_BAD_HANDLE error is returned when handle > +is invalid. > + > +.SH "SEE ALSO" > +.BR cpg_iteration_initialize (3), > +.BR cpg_overview (8) > diff --git a/man/cpg_iteration_initialize.3.in b/man/cpg_iteration_initialize.3.in > new file mode 100644 > index 0000000..5777459 > --- /dev/null > +++ b/man/cpg_iteration_initialize.3.in > @@ -0,0 +1,96 @@ > +.\"/* > +.\" * Copyright (c) 2012 Red Hat, Inc. > +.\" * > +.\" * All rights reserved. > +.\" * > +.\" * Author: Jan Friesse (jfriesse@xxxxxxxxxx) > +.\" * > +.\" * This software licensed under BSD license, the text of which follows: > +.\" * > +.\" * Redistribution and use in source and binary forms, with or without > +.\" * modification, are permitted provided that the following conditions are met: > +.\" * > +.\" * - Redistributions of source code must retain the above copyright notice, > +.\" * this list of conditions and the following disclaimer. > +.\" * - Redistributions in binary form must reproduce the above copyright notice, > +.\" * this list of conditions and the following disclaimer in the documentation > +.\" * and/or other materials provided with the distribution. > +.\" * - Neither the name of the Red Hat, Inc. nor the names of its > +.\" * contributors may be used to endorse or promote products derived from this > +.\" * software without specific prior written permission. > +.\" * > +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE > +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > +.\" * THE POSSIBILITY OF SUCH DAMAGE. > +.\" */ > +.TH "CPG_ITERATION_INITIALIZE" 3 "05/03/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" > + > +.SH NAME > +.P > +cpg_iteration_initialize \- Initialize iterator for members of CPG > + > +.SH SYNOPSIS > +.P > +\fB#include <corosync/cpg.h>\fR > + > +.P > +\fBcs_error_t > +cpg_iteration_initialize (cpg_handle_t \fIhandle\fB, cpg_iteration_type_t \fIiteration_type\fB, > +const struct cpg_name *\fIgroup\fB, cpg_iteration_handle_t *\fIcpg_iteration_handle\fB);\fR > + > +.SH DESCRIPTION > +.P > +The > +.B cpg_iteration_initialize > +function is used to initialize iteration of CPG members. > +The > +.I handle > +argument is connection to CPG database obtained by calling > +.B cpg_initialize(3) > +function. > +.I iteration_type > +is used for limit number of returned items and can be one of: > +.PP > +\fBCPG_ITERATION_NAME_ONLY\fR - only name of used groups are returned > +.PP > +\fBCPG_ITERATION_ONE_GROUP\fR - only members group with name \fIgroup\fR are returned > +.PP > +\fBCPG_ITERATION_ALL\fR - all members are returned > + > +The > +.I group > +parameter is used only with \fBCPG_ITERATION_ONE_GROUP\fR and it's name of group with > +members to iterate. For other \fIiteration_type\fR, this parameter must be NULL. > + > +.B cpg_iteration_initialize > +is used only for initialize context for future > +.B cpg_iteration_next(3) > +calls and handle needed for that function is returned in > +.I cpg_iteration_handle > +variable. When you have finished iteration over objects, call > +.B cpg_iteration_finalize(3) > +function to free up memory associated with iteration. > + > +.SH RETURN VALUE > +This call returns the CS_OK value if successful. If \fIcpg_iteration_handle\fR is NULL, > +\fBCS_ERR_INVALID_PARAM\fR error is returned. Same error is returned when \fIiteration_type\fR > +is \fBCPG_ITERATION_ONE_GROUP\fR, but \fIgroup\fR is NULL, or when \fIgroup\fR is not NULL and > +\fIiteration_type\fR is not \fBCPG_ITERATION_ONE_GROUP\fR. If there is not enough memory > +for internal store of data, \fBCS_ERR_NO_MEMORY\fR is returned. \fBCS_ERR_BAD_HANDLE\fR can > +be returned, if \fIhandle\fR is not valid handle. > + > +.SH COMMON IPC ERRORS > +@COMMONIPCERRORS@ > +.SH "SEE ALSO" > +.BR cpg_iteration_next (3), > +.BR cpg_iteration_finalize (3), > +.BR cpg_initialize (3), > +.BR cpg_overview (8) > diff --git a/man/cpg_iteration_next.3.in b/man/cpg_iteration_next.3.in > new file mode 100644 > index 0000000..656f5f4 > --- /dev/null > +++ b/man/cpg_iteration_next.3.in > @@ -0,0 +1,85 @@ > +.\"/* > +.\" * Copyright (c) 2012 Red Hat, Inc. > +.\" * > +.\" * All rights reserved. > +.\" * > +.\" * Author: Jan Friesse (jfriesse@xxxxxxxxxx) > +.\" * > +.\" * This software licensed under BSD license, the text of which follows: > +.\" * > +.\" * Redistribution and use in source and binary forms, with or without > +.\" * modification, are permitted provided that the following conditions are met: > +.\" * > +.\" * - Redistributions of source code must retain the above copyright notice, > +.\" * this list of conditions and the following disclaimer. > +.\" * - Redistributions in binary form must reproduce the above copyright notice, > +.\" * this list of conditions and the following disclaimer in the documentation > +.\" * and/or other materials provided with the distribution. > +.\" * - Neither the name of the Red Hat, Inc. nor the names of its > +.\" * contributors may be used to endorse or promote products derived from this > +.\" * software without specific prior written permission. > +.\" * > +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" > +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE > +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > +.\" * THE POSSIBILITY OF SUCH DAMAGE. > +.\" */ > +.TH "CPG_ITERATION_NEXT" 3 "05/03/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" > + > +.SH NAME > +.P > +cpg_iteration_next \- Return next item in iteration of CPG > + > +.SH SYNOPSIS > +.P > +\fB#include <corosync/cpg.h>\fR > + > +.P > +\fBcs_error_t > +cpg_iteration_next (cpg_iteration_handle_t \fIhandle\fB, struct cpg_iteration_description_t *\fIdescription\fB);\fR > + > +.SH DESCRIPTION > +.P > +The > +.B cpg_iter_next > +function is used to get next value in iteration. The > +.I handle > +argument is iterator handle obtained by > +.B cpg_iteration_initalize(3) > +function. > +.I description > +is pointer to structure with following definition: > +.IP > +.RS > +.ne 18 > +.nf > +.PP > +struct cpg_iteration_description_t { > + struct cpg_name group; > + uint32_t nodeid; > + uint32_t pid; > +}; > +.ta > +.fi > +.RE > +.IP > +.PP > + > +where \fBgroup\fR is name of group, \fBnodeid\fR is ID of connected node and \fBpid\fR is pid of > +connected process. If iteration was initialized with \fBCPG_ITERATION_NAME_ONLY\fR iteration > +type, both \fBnodeid\fR and \fBpid\fR are 0. > + > +.SH RETURN VALUE > +This call returns the CS_OK value if successful. If there are no more items to iterate, CS_NO_SECTION > +error code is returned. > + > +.SH "SEE ALSO" > +.BR cpg_iteration_initialize (3), > +.BR cpg_overview (8) > diff --git a/man/cpg_overview.8 b/man/cpg_overview.8 > index 1f268a5..bea1090 100644 > --- a/man/cpg_overview.8 > +++ b/man/cpg_overview.8 > @@ -40,12 +40,19 @@ to create distributed applications that operate properly during cluster > partitions, merges, and faults. > .PP > The library provides a mechanism to: > +.PP > * handle abstraction for multiple instances of a CPG library in one application > +.PP > * join one or more groups > +.PP > * leave one or more groups > +.PP > * Deliver messages to members of that group > +.PP > * Deliver configuration changes > .PP > +* Iterate members of groups > +.PP > .SH SECURITY > If encryption is enabled in corosync.conf, the CPG library will encrypt and > authenticate message contents. Applications must run as the ais user to be > @@ -62,12 +69,14 @@ access the corosync services. > .BR cpg_leave (3), > .BR cpg_mcast_joined (3), > .BR cpg_model_initialize (3), > -.BR cpg_membership_get (3) > -.BR cpg_zcb_alloc (3) > -.BR cpg_zcb_free (3) > -.BR cpg_zcb_mcast_joined (3) > -.BR cpg_context_get (3) > -.BR cpg_context_set (3) > -.BR cpg_local_get (3) > - > +.BR cpg_membership_get (3), > +.BR cpg_zcb_alloc (3), > +.BR cpg_zcb_free (3), > +.BR cpg_zcb_mcast_joined (3), > +.BR cpg_context_get (3), > +.BR cpg_context_set (3), > +.BR cpg_local_get (3), > +.BR cpg_iteration_initialize (3), > +.BR cpg_iteration_next (3), > +.BR cpg_iteration_finalize (3) > .PP > diff --git a/man/index.html b/man/index.html > index 0ead199..3c78fd3 100644 > --- a/man/index.html > +++ b/man/index.html > @@ -130,6 +130,18 @@ > Description of the cpg_groups_get interface. > <br> > > + <a href="cpg_iteration_initialize.3.html">cpg_iteration_initialize(3)</a>: > + Description of the cpg_iteration_initialize interface. > + <br> > + > + <a href="cpg_iteration_next.3.html">cpg_iteration_next(3)</a>: > + Description of the cpg_iteration_next interface. > + <br> > + > + <a href="cpg_iteration_finalize.3.html">cpg_iteration_finalize(3)</a>: > + Description of the cpg_iteration_finalize interface. > + <br> > + > <h3>EVS service</h3> > > <a href="evs_overview.8.html">evs_overview(8)</a>: _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss