corosync 3.1.7
Data Structures | Macros | Typedefs | Enumerations | Functions
Cmap_corosync

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...
 

Detailed Description

Macro Definition Documentation

◆ CMAP_KEYNAME_MAXLEN

#define CMAP_KEYNAME_MAXLEN   255

Definition at line 69 of file cmap.h.

◆ CMAP_KEYNAME_MINLEN

#define CMAP_KEYNAME_MINLEN   3

Definition at line 73 of file cmap.h.

◆ CMAP_TRACK_ADD

#define CMAP_TRACK_ADD   4

Definition at line 78 of file cmap.h.

◆ CMAP_TRACK_DELETE

#define CMAP_TRACK_DELETE   1

Definition at line 79 of file cmap.h.

◆ CMAP_TRACK_MODIFY

#define CMAP_TRACK_MODIFY   2

Definition at line 80 of file cmap.h.

◆ CMAP_TRACK_PREFIX

#define CMAP_TRACK_PREFIX   8

Whole prefix is tracked, instead of key only (so "totem." tracking means that "totem.nodeid", "totem.version", ... applies).

This value is also never returned inside of callback and is used only in adding track

Definition at line 87 of file cmap.h.

Typedef Documentation

◆ cmap_handle_t

typedef uint64_t cmap_handle_t

Definition at line 54 of file cmap.h.

◆ cmap_iter_handle_t

typedef uint64_t cmap_iter_handle_t

Definition at line 59 of file cmap.h.

◆ cmap_notify_fn_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.

Definition at line 129 of file cmap.h.

◆ cmap_track_handle_t

typedef uint64_t cmap_track_handle_t

Definition at line 64 of file cmap.h.

Enumeration Type Documentation

◆ cmap_map_t

enum cmap_map_t
Enumerator
CMAP_MAP_DEFAULT 
CMAP_MAP_ICMAP 
CMAP_MAP_STATS 

Definition at line 107 of file cmap.h.

◆ cmap_value_types_t

Possible types of value.

Binary is raw data without trailing zero with given length

Enumerator
CMAP_VALUETYPE_INT8 
CMAP_VALUETYPE_UINT8 
CMAP_VALUETYPE_INT16 
CMAP_VALUETYPE_UINT16 
CMAP_VALUETYPE_INT32 
CMAP_VALUETYPE_UINT32 
CMAP_VALUETYPE_INT64 
CMAP_VALUETYPE_UINT64 
CMAP_VALUETYPE_FLOAT 
CMAP_VALUETYPE_DOUBLE 
CMAP_VALUETYPE_STRING 
CMAP_VALUETYPE_BINARY 

Definition at line 92 of file cmap.h.

Function Documentation

◆ cmap_context_get()

cs_error_t cmap_context_get ( cmap_handle_t  handle,
const void **  context 
)

cmap_context_get

Parameters
handle
context
Returns

Definition at line 352 of file lib/cmap.c.

References hdb_error_to_cs().

◆ cmap_context_set()

cs_error_t cmap_context_set ( cmap_handle_t  handle,
const void *  context 
)

cmap_context_set

Parameters
handle
context
Returns

Definition at line 371 of file lib/cmap.c.

References hdb_error_to_cs().

◆ cmap_dec()

cs_error_t cmap_dec ( cmap_handle_t  handle,
const char *  key_name 
)

Decrement value of key_name if it is [u]int* type.

Parameters
handlecmap handle
key_namekey name

Definition at line 817 of file lib/cmap.c.

◆ cmap_delete()

cs_error_t cmap_delete ( cmap_handle_t  handle,
const char *  key_name 
)

Deletes key from cmap database.

Parameters
handlecmap handle
key_namename 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().

◆ cmap_dispatch()

cs_error_t cmap_dispatch ( cmap_handle_t  handle,
cs_dispatch_flags_t  dispatch_types 
)

Dispatch data from service.

Parameters
handlecmap handle initialized by cmap_initialize
dispatch_typesone of standard corosync dispatch values

Definition at line 229 of file lib/cmap.c.

References hdb_error_to_cs(), and IPC_DISPATCH_SIZE.

◆ cmap_fd_get()

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.

Parameters
handlecmap handle initialized by cmap_initialize
fdfile descriptor for poll

Definition at line 212 of file lib/cmap.c.

References hdb_error_to_cs().

◆ cmap_finalize()

cs_error_t cmap_finalize ( cmap_handle_t  handle)

Close the cmap handle.

Parameters
handlecmap handle

Definition at line 173 of file lib/cmap.c.

References hdb_error_to_cs().

◆ cmap_get()

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.

Parameters
handlecmap handle
key_namename of key where to get value
valuepointer to store data (or NULL)
value_lenpointer with length of value (value != NULL), or pointer where value length will be returned (value == NULL) or NULL.
typetype 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().

◆ cmap_get_double()

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.

◆ cmap_get_float()

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.

◆ cmap_get_int16()

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.

◆ cmap_get_int32()

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.

◆ cmap_get_int64()

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.

◆ cmap_get_int8()

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.

◆ cmap_get_string()

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

Parameters
handlecmap handle
key_namename of key to get value from
strpointer 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.

◆ cmap_get_uint16()

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.

◆ cmap_get_uint32()

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.

◆ cmap_get_uint64()

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.

◆ cmap_get_uint8()

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.

◆ cmap_inc()

cs_error_t cmap_inc ( cmap_handle_t  handle,
const char *  key_name 
)

Increment value of key_name if it is [u]int* type.

Parameters
handlecmap handle
key_namekey name

Definition at line 811 of file lib/cmap.c.

◆ cmap_initialize()

cs_error_t cmap_initialize ( cmap_handle_t handle)

Create a new cmap connection.

Parameters
handlewill 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().

◆ 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.

Parameters
handlewill be filled with handle to be used for all following operations with cht.
mapis 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().

◆ cmap_iter_finalize()

cs_error_t cmap_iter_finalize ( cmap_handle_t  handle,
cmap_iter_handle_t  iter_handle 
)

Finalize iterator.

Parameters
handle
iter_handle
Returns

Definition at line 938 of file lib/cmap.c.

References hdb_error_to_cs().

◆ cmap_iter_init()

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.

Parameters
handlecmap handle
prefixprefix to iterate on
cmap_iter_handlevalue 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().

◆ cmap_iter_next()

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.

Parameters
handlecmap handle
iter_handlehandle of iteration returned by cmap_iter_init
key_nameplace 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_lenlength of value
typetype of value
Returns
CS_NO_SECTION if there are no more sections to iterate

Definition at line 878 of file lib/cmap.c.

References CS_ERR_INVALID_PARAM, and hdb_error_to_cs().

◆ cmap_set()

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.

Parameters
handlecmap handle
key_namename of key where to store value
valuevalue to store
value_lenlength of value to store
typetype 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().

◆ cmap_set_double()

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.

◆ cmap_set_float()

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.

◆ cmap_set_int16()

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.

◆ cmap_set_int32()

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.

◆ cmap_set_int64()

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.

◆ cmap_set_int8()

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.

◆ cmap_set_string()

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.

◆ cmap_set_uint16()

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.

◆ cmap_set_uint32()

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.

◆ cmap_set_uint64()

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.

◆ cmap_set_uint8()

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.

◆ cmap_track_add()

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.

Parameters
handlecmap handle
key_namename of key to track changes on
track_typebitwise-or of CMAP_TRACK_* values
notify_fnfunction to be called on change of key
user_datagiven pointer is unchanged passed to notify_fn
cmap_track_handlehandle 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.

◆ cmap_track_delete()

cs_error_t cmap_track_delete ( cmap_handle_t  handle,
cmap_track_handle_t  track_handle 
)

Delete track created previously by cmap_track_add.

Parameters
handlecmap handle
track_handleTrack handle

Definition at line 1068 of file lib/cmap.c.

References hdb_error_to_cs().