You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/lib/cds/dbid.h

42 lines
981 B

#ifndef __DBID_H
#define __DBID_H
/* functions and structures for generating unique database IDs */
#include <string.h>
#define MAX_DBID_LEN 48
#ifdef __cplusplus
extern "C" {
#endif
typedef char dbid_t[MAX_DBID_LEN];
/** generates ID for data in shared memory at address given by data_ptr */
void generate_dbid_ptr(dbid_t dst, void *data_ptr);
#ifdef SER
void generate_dbid(dbid_t dst);
#endif
/* macros for conversion to string representation of DBID
* (if dbid becomes structure with binary information
* these should be removed and replaced by functions) */
#define dbid_strlen(id) strlen(id)
#define dbid_strptr(id) ((char*)(id))
#define dbid_clear(id) do { (id)[0] = 0; } while (0)
#define is_dbid_empty(id) (!(id)[0])
/** Copies dbid as string into destination. The destination string
* data buffer MUST be allocated in needed size! */
#define dbid_strcpy(dst,id,l) do { memcpy((dst)->s,id,l); (dst)->len = l; } while (0)
#ifdef __cplusplus
}
#endif
#endif