summaryrefslogtreecommitdiffstats
path: root/man/cmap_track_add.3.in
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 17:01:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 17:01:24 +0000
commit6dd3dfb79125cd02d02efbce435a6c82e5af92ef (patch)
tree45084fc83278586f6bbafcb935f92d53f71a6b03 /man/cmap_track_add.3.in
parentInitial commit. (diff)
downloadcorosync-6dd3dfb79125cd02d02efbce435a6c82e5af92ef.tar.xz
corosync-6dd3dfb79125cd02d02efbce435a6c82e5af92ef.zip
Adding upstream version 3.1.8.upstream/3.1.8upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/cmap_track_add.3.in')
-rw-r--r--man/cmap_track_add.3.in170
1 files changed, 170 insertions, 0 deletions
diff --git a/man/cmap_track_add.3.in b/man/cmap_track_add.3.in
new file mode 100644
index 0000000..02e07c3
--- /dev/null
+++ b/man/cmap_track_add.3.in
@@ -0,0 +1,170 @@
+.\"/*
+.\" * Copyright (c) 2012 Red Hat, Inc.
+.\" *
+.\" * All rights reserved.
+.\" *
+.\" * Author: Jan Friesse (jfriesse@redhat.com)
+.\" *
+.\" * 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 "CMAP_TRACK_ADD" 3 "06/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
+
+.SH NAME
+.P
+cmap_track_add \- Set tracking function for values in CMAP
+
+.SH SYNOPSIS
+.P
+\fB#include <corosync/cmap.h>\fR
+
+.P
+\fBcs_error_t
+cmap_track_add (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int32_t \fItrack_type\fB,
+cmap_notify_fn_t \fInotify_fn\fB, void *\fIuser_data\fB, cmap_track_handle_t *\fIcmap_track_handle\fB);\fR
+
+.SH DESCRIPTION
+.P
+The
+.B cmap_track_add
+function is used to set function which tracks changes in CMAP. One CMAP connection can
+track multiple keys and also it's possible to track one key multiple times. The
+.I handle
+argument is connection to CMAP database obtained by calling
+.B cmap_initialize(3)
+function.
+.I key_name
+argument is ether exact key name or prefix of key name to track changes on.
+.I track_type
+is bitfield which may consist of following values:
+.PP
+\fBCMAP_TRACK_ADD\fR - track addition of new key (or key added in callback)
+.PP
+\fBCMAP_TRACK_DELETE\fR - track deletion of key (or key deleted in callback)
+.PP
+\fBCMAP_TRACK_MODIFY\fR - track modification of key (or key modified in callback)
+.PP
+\fBCMAP_TRACK_PREFIX\fR - whole prefix is tracked, instead of key only, so "totem." tracking means
+that "totem.nodeid", "totem.version", ... applies (this value is never returned
+in callback)
+.PP
+.I notify_fn
+is pointer to function which is called when value is changed. It's definition and meaning of parameters
+is discussed below.
+.I user_data
+argument is passed directly to
+.I notify_fn
+without any changes.
+.I cmap_track_handle
+is used for removing of tracking when no longer needed by calling
+.B cmap_track_delete(3)
+function.
+
+Callback function is defined as:
+.IP
+.RS
+.ne 18
+.nf
+.PP
+typedef void (*cmap_notify_fn_t) (
+ cmap_handle_t cmap_handle,
+ cmap_track_handle_t cmap_track_handle,
+ int32_t event,
+ const char *key_name,
+ struct cmap_notify_value new_value,
+ struct cmap_notify_value old_value,
+ void *user_data);
+.ta
+.fi
+.RE
+.IP
+.PP
+where
+.I cmap_handle
+is handle used in registration of track function.
+.I cmap_track_handle
+is handle returned by
+.B cmap_track_add
+function.
+.I event
+is one of \fBCMAP_TRACK_ADD\fR, \fBCMAP_TRACK_DELETE\fR or \fBCMAP_TRACK_MODIFY\fR.
+.I key_name
+is name of changed key.
+.I new_value
+is new value of key, or unset if
+.I event
+is \fBCMAP_TRACK_DELETE\fR.
+.I old_value
+is previous value of key or unset if
+.I event
+is \fBCMAP_TRACK_ADD\fR or for some special keys set directly by Corosync due to speed optimizations.
+Both
+.I new_value
+and
+.I old_value
+are structures defined as:
+.IP
+.RS
+.ne 18
+.nf
+.PP
+struct cmap_notify_value {
+ cmap_value_types_t type;
+ size_t len;
+ const void *data;
+};
+.ta
+.fi
+.RE
+.IP
+.PP
+If value is unset, all fields are set to 0. Otherwise
+.I type
+is one of cmap types (as described in
+.B cmap_get(3)
+function),
+.I len
+is length of value in cmap and
+.I data
+is pointer to value of item. Data storage is dynamically allocated by caller and notify function must not try to
+free it.
+
+.SH RETURN VALUE
+This call returns the CS_OK value if successful. It can return CS_ERR_INVALID_PARAM if
+notify_fn is NULL or track_type is invalid value.
+
+.SH NOTES
+Modification tracking of individual keys is supported in the stats map, but not
+prefixes. Add/Delete operations are supported on prefixes though so you can track
+for new ipc connections or knet interfaces.
+In the icmap map, prefix tracking is fully supported.
+
+.SH "SEE ALSO"
+.BR cmap_track_delete (3),
+.BR cmap_initialize (3),
+.BR cmap_get (3),
+.BR cmap_dispatch (3),
+.BR cmap_overview (3)