corosync 3.1.7
|
Data Structures | |
struct | cmap_notify_value |
Structure passed as new_value and old_value in change callback. More... | |
Macros | |
#define | CMAP_KEYNAME_MAXLEN 255 |
#define | CMAP_KEYNAME_MINLEN 3 |
#define | CMAP_TRACK_ADD 4 |
#define | CMAP_TRACK_DELETE 1 |
#define | CMAP_TRACK_MODIFY 2 |
#define | CMAP_TRACK_PREFIX 8 |
Whole prefix is tracked, instead of key only (so "totem." tracking means that "totem.nodeid", "totem.version", ... applies). More... | |
Typedefs | |
typedef uint64_t | cmap_handle_t |
typedef uint64_t | cmap_iter_handle_t |
typedef uint64_t | cmap_track_handle_t |
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) |
Prototype for notify callback function. More... | |
Enumerations | |
enum | cmap_value_types_t { CMAP_VALUETYPE_INT8 = 1 , CMAP_VALUETYPE_UINT8 = 2 , CMAP_VALUETYPE_INT16 = 3 , CMAP_VALUETYPE_UINT16 = 4 , CMAP_VALUETYPE_INT32 = 5 , CMAP_VALUETYPE_UINT32 = 6 , CMAP_VALUETYPE_INT64 = 7 , CMAP_VALUETYPE_UINT64 = 8 , CMAP_VALUETYPE_FLOAT = 9 , CMAP_VALUETYPE_DOUBLE = 10 , CMAP_VALUETYPE_STRING = 11 , CMAP_VALUETYPE_BINARY = 12 } |
Possible types of value. More... | |
enum | cmap_map_t { CMAP_MAP_DEFAULT = 0 , CMAP_MAP_ICMAP = 0 , CMAP_MAP_STATS = 1 } |
Functions | |
cs_error_t | cmap_initialize (cmap_handle_t *handle) |
Create a new cmap connection. More... | |
cs_error_t | cmap_initialize_map (cmap_handle_t *handle, cmap_map_t map) |
Create a new cmap connection on a specified map. More... | |
cs_error_t | cmap_finalize (cmap_handle_t handle) |
Close the cmap handle. More... | |
cs_error_t | cmap_fd_get (cmap_handle_t handle, int *fd) |
Get a file descriptor on which to poll. More... | |
cs_error_t | cmap_dispatch (cmap_handle_t handle, cs_dispatch_flags_t dispatch_types) |
Dispatch data from service. More... | |
cs_error_t | cmap_context_get (cmap_handle_t handle, const void **context) |
cmap_context_get More... | |
cs_error_t | cmap_context_set (cmap_handle_t handle, const void *context) |
cmap_context_set More... | |
cs_error_t | cmap_set (cmap_handle_t handle, const char *key_name, const void *value, size_t value_len, cmap_value_types_t type) |
Store value in cmap. More... | |
cs_error_t | cmap_set_int8 (cmap_handle_t handle, const char *key_name, int8_t value) |
cs_error_t | cmap_set_uint8 (cmap_handle_t handle, const char *key_name, uint8_t value) |
cs_error_t | cmap_set_int16 (cmap_handle_t handle, const char *key_name, int16_t value) |
cs_error_t | cmap_set_uint16 (cmap_handle_t handle, const char *key_name, uint16_t value) |
cs_error_t | cmap_set_int32 (cmap_handle_t handle, const char *key_name, int32_t value) |
cs_error_t | cmap_set_uint32 (cmap_handle_t handle, const char *key_name, uint32_t value) |
cs_error_t | cmap_set_int64 (cmap_handle_t handle, const char *key_name, int64_t value) |
cs_error_t | cmap_set_uint64 (cmap_handle_t handle, const char *key_name, uint64_t value) |
cs_error_t | cmap_set_float (cmap_handle_t handle, const char *key_name, float value) |
cs_error_t | cmap_set_double (cmap_handle_t handle, const char *key_name, double value) |
cs_error_t | cmap_set_string (cmap_handle_t handle, const char *key_name, const char *value) |
cs_error_t | cmap_delete (cmap_handle_t handle, const char *key_name) |
Deletes key from cmap database. More... | |
cs_error_t | cmap_get (cmap_handle_t handle, const char *key_name, void *value, size_t *value_len, cmap_value_types_t *type) |
Retrieve value of key key_name and store it in user preallocated value pointer. More... | |
cs_error_t | cmap_get_int8 (cmap_handle_t handle, const char *key_name, int8_t *i8) |
cs_error_t | cmap_get_uint8 (cmap_handle_t handle, const char *key_name, uint8_t *u8) |
cs_error_t | cmap_get_int16 (cmap_handle_t handle, const char *key_name, int16_t *i16) |
cs_error_t | cmap_get_uint16 (cmap_handle_t handle, const char *key_name, uint16_t *u16) |
cs_error_t | cmap_get_int32 (cmap_handle_t handle, const char *key_name, int32_t *i32) |
cs_error_t | cmap_get_uint32 (cmap_handle_t handle, const char *key_name, uint32_t *u32) |
cs_error_t | cmap_get_int64 (cmap_handle_t handle, const char *key_name, int64_t *i64) |
cs_error_t | cmap_get_uint64 (cmap_handle_t handle, const char *key_name, uint64_t *u64) |
cs_error_t | cmap_get_float (cmap_handle_t handle, const char *key_name, float *flt) |
cs_error_t | cmap_get_double (cmap_handle_t handle, const char *key_name, double *dbl) |
cs_error_t | cmap_get_string (cmap_handle_t handle, const char *key_name, char **str) |
Shortcut for cmap_get for string type. More... | |
cs_error_t | cmap_inc (cmap_handle_t handle, const char *key_name) |
Increment value of key_name if it is [u]int* type. More... | |
cs_error_t | cmap_dec (cmap_handle_t handle, const char *key_name) |
Decrement value of key_name if it is [u]int* type. More... | |
cs_error_t | cmap_iter_init (cmap_handle_t handle, const char *prefix, cmap_iter_handle_t *cmap_iter_handle) |
Initialize iterator with given prefix. More... | |
cs_error_t | cmap_iter_next (cmap_handle_t handle, cmap_iter_handle_t iter_handle, char key_name[], size_t *value_len, cmap_value_types_t *type) |
Return next item in iterator iter. More... | |
cs_error_t | cmap_iter_finalize (cmap_handle_t handle, cmap_iter_handle_t iter_handle) |
Finalize iterator. More... | |
cs_error_t | cmap_track_add (cmap_handle_t handle, const char *key_name, int32_t track_type, cmap_notify_fn_t notify_fn, void *user_data, cmap_track_handle_t *cmap_track_handle) |
Add tracking function for given key_name. More... | |
cs_error_t | cmap_track_delete (cmap_handle_t handle, cmap_track_handle_t track_handle) |
Delete track created previously by cmap_track_add. More... | |
#define CMAP_TRACK_PREFIX 8 |
typedef uint64_t cmap_handle_t |
typedef uint64_t cmap_iter_handle_t |
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) |
Prototype for notify callback function.
Even is one of CMAP_TRACK_* event, key_name is changed key, new and old_value contains values or are zeroed (in other words, type is non existing 0 type) if there were no old (creating of key) or new (deleting of key) value. user_data are passed when adding tracking.
typedef uint64_t cmap_track_handle_t |
enum cmap_map_t |
enum cmap_value_types_t |
Possible types of value.
Binary is raw data without trailing zero with given length
cs_error_t cmap_context_get | ( | cmap_handle_t | handle, |
const void ** | context | ||
) |
cmap_context_get
handle | |
context |
Definition at line 352 of file lib/cmap.c.
References hdb_error_to_cs().
cs_error_t cmap_context_set | ( | cmap_handle_t | handle, |
const void * | context | ||
) |
cmap_context_set
handle | |
context |
Definition at line 371 of file lib/cmap.c.
References hdb_error_to_cs().
cs_error_t cmap_dec | ( | cmap_handle_t | handle, |
const char * | key_name | ||
) |
Decrement value of key_name if it is [u]int* type.
handle | cmap handle |
key_name | key name |
Definition at line 817 of file lib/cmap.c.
cs_error_t cmap_delete | ( | cmap_handle_t | handle, |
const char * | key_name | ||
) |
Deletes key from cmap database.
handle | cmap handle |
key_name | name of key to delete |
Definition at line 507 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, CS_ERR_NAME_TOO_LONG, CS_MAX_NAME_LENGTH, and hdb_error_to_cs().
cs_error_t cmap_dispatch | ( | cmap_handle_t | handle, |
cs_dispatch_flags_t | dispatch_types | ||
) |
Dispatch data from service.
handle | cmap handle initialized by cmap_initialize |
dispatch_types | one of standard corosync dispatch values |
Definition at line 229 of file lib/cmap.c.
References hdb_error_to_cs(), and IPC_DISPATCH_SIZE.
cs_error_t cmap_fd_get | ( | cmap_handle_t | handle, |
int * | fd | ||
) |
Get a file descriptor on which to poll.
cmap_handle_t is NOT a file descriptor and may not be used directly.
handle | cmap handle initialized by cmap_initialize |
fd | file descriptor for poll |
Definition at line 212 of file lib/cmap.c.
References hdb_error_to_cs().
cs_error_t cmap_finalize | ( | cmap_handle_t | handle | ) |
Close the cmap handle.
handle | cmap handle |
Definition at line 173 of file lib/cmap.c.
References hdb_error_to_cs().
cs_error_t cmap_get | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
void * | value, | ||
size_t * | value_len, | ||
cmap_value_types_t * | type | ||
) |
Retrieve value of key key_name and store it in user preallocated value pointer.
value can be NULL, and then only value_len and/or type is returned (both of them can also be NULL). If value is not NULL, actual length of value in map is checked against value_len. If *value_len is shorter then length of value in map, error CS_ERR_INVALID_PARAM is returned. After successful copy of value, value_len is set to actual length of value in map.
handle | cmap handle |
key_name | name of key where to get value |
value | pointer to store data (or NULL) |
value_len | pointer with length of value (value != NULL), or pointer where value length will be returned (value == NULL) or NULL. |
type | type of value in cmap |
Definition at line 553 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, CS_ERR_NAME_TOO_LONG, CS_MAX_NAME_LENGTH, hdb_error_to_cs(), and value.
Referenced by cmap_get_string().
cs_error_t cmap_get_double | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
double * | dbl | ||
) |
Definition at line 721 of file lib/cmap.c.
cs_error_t cmap_get_float | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
float * | flt | ||
) |
Definition at line 715 of file lib/cmap.c.
cs_error_t cmap_get_int16 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int16_t * | i16 | ||
) |
Definition at line 679 of file lib/cmap.c.
cs_error_t cmap_get_int32 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int32_t * | i32 | ||
) |
Definition at line 691 of file lib/cmap.c.
cs_error_t cmap_get_int64 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int64_t * | i64 | ||
) |
Definition at line 703 of file lib/cmap.c.
cs_error_t cmap_get_int8 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int8_t * | i8 | ||
) |
Definition at line 667 of file lib/cmap.c.
cs_error_t cmap_get_string | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
char ** | str | ||
) |
Shortcut for cmap_get for string type.
Returned string is newly allocated and caller is responsible for freeing memory
handle | cmap handle |
key_name | name of key to get value from |
str | pointer where char pointer will be stored |
Definition at line 727 of file lib/cmap.c.
References cmap_get(), CMAP_VALUETYPE_STRING, CS_ERR_INVALID_PARAM, CS_ERR_NO_MEMORY, CS_OK, and type.
cs_error_t cmap_get_uint16 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint16_t * | u16 | ||
) |
Definition at line 685 of file lib/cmap.c.
cs_error_t cmap_get_uint32 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint32_t * | u32 | ||
) |
Definition at line 697 of file lib/cmap.c.
cs_error_t cmap_get_uint64 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint64_t * | u64 | ||
) |
Definition at line 709 of file lib/cmap.c.
cs_error_t cmap_get_uint8 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint8_t * | u8 | ||
) |
Definition at line 673 of file lib/cmap.c.
cs_error_t cmap_inc | ( | cmap_handle_t | handle, |
const char * | key_name | ||
) |
Increment value of key_name if it is [u]int* type.
handle | cmap handle |
key_name | key name |
Definition at line 811 of file lib/cmap.c.
cs_error_t cmap_initialize | ( | cmap_handle_t * | handle | ) |
Create a new cmap connection.
handle | will be filled with handle to be used for all following operations with cht. |
Definition at line 89 of file lib/cmap.c.
References hdb_error_to_cs().
Referenced by cmap_initialize_map().
cs_error_t cmap_initialize_map | ( | cmap_handle_t * | handle, |
cmap_map_t | map | ||
) |
Create a new cmap connection on a specified map.
handle | will be filled with handle to be used for all following operations with cht. |
map | is the 'map' to use for this connection |
Definition at line 124 of file lib/cmap.c.
References cmap_initialize(), CS_OK, and hdb_error_to_cs().
cs_error_t cmap_iter_finalize | ( | cmap_handle_t | handle, |
cmap_iter_handle_t | iter_handle | ||
) |
Finalize iterator.
handle | |
iter_handle |
Definition at line 938 of file lib/cmap.c.
References hdb_error_to_cs().
cs_error_t cmap_iter_init | ( | cmap_handle_t | handle, |
const char * | prefix, | ||
cmap_iter_handle_t * | cmap_iter_handle | ||
) |
Initialize iterator with given prefix.
handle | cmap handle |
prefix | prefix to iterate on |
cmap_iter_handle | value used for getting next value of iterator and/or deleting iteration |
Definition at line 823 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, and hdb_error_to_cs().
cs_error_t cmap_iter_next | ( | cmap_handle_t | handle, |
cmap_iter_handle_t | iter_handle, | ||
char | key_name[], | ||
size_t * | value_len, | ||
cmap_value_types_t * | type | ||
) |
Return next item in iterator iter.
value_len and type are optional (= can be NULL), but if set, length of returned value and/or type is returned.
handle | cmap handle |
iter_handle | handle of iteration returned by cmap_iter_init |
key_name | place to store name of key. Maximum length is CMAP_KEYNAME_MAXLEN and trailing zero is always added so size of the buffer has to be at least CMAP_KEYNAME_MAXLEN + 1. |
value_len | length of value |
type | type of value |
Definition at line 878 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, and hdb_error_to_cs().
cs_error_t cmap_set | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
const void * | value, | ||
size_t | value_len, | ||
cmap_value_types_t | type | ||
) |
Store value in cmap.
handle | cmap handle |
key_name | name of key where to store value |
value | value to store |
value_len | length of value to store |
type | type to store |
Definition at line 390 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, CS_ERR_NAME_TOO_LONG, CS_MAX_NAME_LENGTH, hdb_error_to_cs(), and value.
Referenced by cmap_set_double(), cmap_set_float(), cmap_set_int16(), cmap_set_int32(), cmap_set_int64(), cmap_set_int8(), cmap_set_string(), cmap_set_uint16(), cmap_set_uint32(), cmap_set_uint64(), and cmap_set_uint8().
cs_error_t cmap_set_double | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
double | value | ||
) |
Definition at line 492 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_DOUBLE, and value.
cs_error_t cmap_set_float | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
float | value | ||
) |
Definition at line 487 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_FLOAT, and value.
cs_error_t cmap_set_int16 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int16_t | value | ||
) |
Definition at line 457 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_INT16, and value.
cs_error_t cmap_set_int32 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int32_t | value | ||
) |
Definition at line 467 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_INT32, and value.
cs_error_t cmap_set_int64 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int64_t | value | ||
) |
Definition at line 477 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_INT64, and value.
cs_error_t cmap_set_int8 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int8_t | value | ||
) |
Definition at line 447 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_INT8, and value.
cs_error_t cmap_set_string | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
const char * | value | ||
) |
Definition at line 497 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_STRING, CS_ERR_INVALID_PARAM, and value.
cs_error_t cmap_set_uint16 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint16_t | value | ||
) |
Definition at line 462 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_UINT16, and value.
cs_error_t cmap_set_uint32 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint32_t | value | ||
) |
Definition at line 472 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_UINT32, and value.
cs_error_t cmap_set_uint64 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint64_t | value | ||
) |
Definition at line 482 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_UINT64, and value.
cs_error_t cmap_set_uint8 | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
uint8_t | value | ||
) |
Definition at line 452 of file lib/cmap.c.
References cmap_set(), CMAP_VALUETYPE_UINT8, and value.
cs_error_t cmap_track_add | ( | cmap_handle_t | handle, |
const char * | key_name, | ||
int32_t | track_type, | ||
cmap_notify_fn_t | notify_fn, | ||
void * | user_data, | ||
cmap_track_handle_t * | cmap_track_handle | ||
) |
Add tracking function for given key_name.
Tracked changes (add|modify|delete) depend on track_type, which is bitwise or of CMAP_TRACK_* values. notify_fn is called on change, where user_data pointer is passed (unchanged). Value which can be used to delete tracking is passed as cmap_track.
handle | cmap handle |
key_name | name of key to track changes on |
track_type | bitwise-or of CMAP_TRACK_* values |
notify_fn | function to be called on change of key |
user_data | given pointer is unchanged passed to notify_fn |
cmap_track_handle | handle used for removing of newly created track |
Definition at line 977 of file lib/cmap.c.
References CS_ERR_INVALID_PARAM, hdb_error_to_cs(), and cmap_track_inst::notify_fn.
cs_error_t cmap_track_delete | ( | cmap_handle_t | handle, |
cmap_track_handle_t | track_handle | ||
) |
Delete track created previously by cmap_track_add.
handle | cmap handle |
track_handle | Track handle |
Definition at line 1068 of file lib/cmap.c.
References hdb_error_to_cs().