UM C API  6.16
lbmsdm.h File Reference

Ultra Messaging (UM) Self-Describing Message (SDM) API. The "lbmsdm.h" header file defines the APIs to create and parse Self-Describing Messages (SDM). The binary code is contained in the "lbm" library (dynamic on Unix: "liblbm.so", static on Unix: "liblbm.a", dynamic only on Windows: "lbm.dll"). There are also Java and .NET APIs. See Self Describing Messaging for general information on SDM. See UM C API for general information on the C API. See Fundamental Concepts for an introduction to Ultra Messaging. More...

#include <stdlib.h>
#include <inttypes.h>
#include <sys/time.h>

Go to the source code of this file.

Data Structures

struct  lbmsdm_decimal_t_stct
 Structure to hold a scaled decimal number. A scaled decimal number consists of a mantissa $m$ and an exponent $exp$. It represents the value $m\cdot 10^{exp}$. More...
 

Macros

#define LBMSDMExpDLL
 
#define LBMSDM_MAX_FIELD_NAME_LENGTH   255
 Maximum length of a field name.
 
#define LBMSDM_TYPE_MODIFIER_ARRAY   0x0100
 

Typedefs

typedef struct lbmsdm_msg_attr_t_stct lbmsdm_msg_attr_t
 Message attributes object for SDM (opaque).
 
typedef struct lbmsdm_msg_t_stct lbmsdm_msg_t
 Message object for SDM (opaque).
 
typedef uint16_t lbmsdm_field_type_t
 Type definition for an SDM field type.
 
typedef struct lbmsdm_iter_t_stct lbmsdm_iter_t
 Message iterator object for SDM (opaque).
 
typedef struct lbmsdm_decimal_t_stct lbmsdm_decimal_t
 Structure to hold a scaled decimal number. A scaled decimal number consists of a mantissa $m$ and an exponent $exp$. It represents the value $m\cdot 10^{exp}$. More...
 

Enumerations

enum  
 SDM field type definitions. More...
 
enum  
 SDM API function return codes. More...
 
enum  
 SDM error codes. More...
 

Functions

LBMSDMExpDLL int lbmsdm_errnum (void)
 Return the error number last encountered by this thread. More...
 
LBMSDMExpDLL const char * lbmsdm_errmsg (void)
 Return an ASCII string containing the error message last encountered by this thread. More...
 
LBMSDMExpDLL int lbmsdm_win32_static_init (void)
 Perform required initialization under Windows. This function needs to be called before any other LBM SDM API function, but only when using the static version of the LBM SDM library on Windows. More...
 
LBMSDMExpDLL int lbmsdm_msg_create (lbmsdm_msg_t **Message)
 Create an SDM message to be filled in and sent. More...
 
LBMSDMExpDLL int lbmsdm_msg_create_ex (lbmsdm_msg_t **Message, const lbmsdm_msg_attr_t *Attributes)
 Create an SDM message to be filled in and sent, with options. More...
 
LBMSDMExpDLL int lbmsdm_msg_parse (lbmsdm_msg_t **Message, const char *Data, size_t Length)
 Create an SDM message to be parsed and processed from an existing buffer. More...
 
LBMSDMExpDLL int lbmsdm_msg_parse_ex (lbmsdm_msg_t **Message, const char *Data, size_t Length, const lbmsdm_msg_attr_t *Attributes)
 Create an SDM message to be parsed and processed from an existing buffer, with options. More...
 
LBMSDMExpDLL int lbmsdm_msg_parse_reuse (lbmsdm_msg_t *Message, const char *Data, size_t Length)
 Create an SDM message to be parsed and processed from an existing buffer, using an already-existing lbmsdm_msg_t structure. More...
 
LBMSDMExpDLL int lbmsdm_msg_clone (lbmsdm_msg_t **Message, const lbmsdm_msg_t *Original)
 Clone an existing SDM message. This function is not thread safe. More...
 
LBMSDMExpDLL int lbmsdm_msg_clear (lbmsdm_msg_t *Message)
 Clear an SDM message, deleting all fields in the message. More...
 
LBMSDMExpDLL int lbmsdm_msg_destroy (lbmsdm_msg_t *Message)
 Destroy an SDM message object. More...
 
LBMSDMExpDLL int lbmsdm_msg_dump (lbmsdm_msg_t *Message, char *Buffer, size_t Size)
 Dump a message into a printable string. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_boolean (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 Add a field to a message. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_int8 (lbmsdm_msg_t *Message, const char *Name, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint8 (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int16 (lbmsdm_msg_t *Message, const char *Name, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint16 (lbmsdm_msg_t *Message, const char *Name, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int32 (lbmsdm_msg_t *Message, const char *Name, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint32 (lbmsdm_msg_t *Message, const char *Name, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int64 (lbmsdm_msg_t *Message, const char *Name, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint64 (lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_float (lbmsdm_msg_t *Message, const char *Name, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_double (lbmsdm_msg_t *Message, const char *Name, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_decimal (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_timestamp (lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_message (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_string (lbmsdm_msg_t *Message, const char *Name, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_unicode (lbmsdm_msg_t *Message, const char *Name, const wchar_t *Value, size_t Length)
 Add a unicode field to a message. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_blob (lbmsdm_msg_t *Message, const char *Name, const void *Value, size_t Length)
 Add a BLOB field to a message. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_boolean_array (lbmsdm_msg_t *Message, const char *Name)
 Add an array field to a message. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_int8_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint8_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_int16_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint16_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_int32_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint32_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_int64_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint64_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_float_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_double_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_decimal_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_timestamp_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_message_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_string_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_unicode_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_blob_array (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_add_boolean_elem_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t Value)
 Set the value of an array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_int8_elem_idx (lbmsdm_msg_t *Message, size_t Index, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint8_elem_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_idx (lbmsdm_msg_t *Message, size_t Index, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint16_elem_idx (lbmsdm_msg_t *Message, size_t Index, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_idx (lbmsdm_msg_t *Message, size_t Index, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_idx (lbmsdm_msg_t *Message, size_t Index, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_idx (lbmsdm_msg_t *Message, size_t Index, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_idx (lbmsdm_msg_t *Message, size_t Index, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_float_elem_idx (lbmsdm_msg_t *Message, size_t Index, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_double_elem_idx (lbmsdm_msg_t *Message, size_t Index, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_idx (lbmsdm_msg_t *Message, size_t Index, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_idx (lbmsdm_msg_t *Message, size_t Index, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_message_elem_idx (lbmsdm_msg_t *Message, size_t Index, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_string_elem_idx (lbmsdm_msg_t *Message, size_t Index, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_unicode_elem_idx (lbmsdm_msg_t *Message, size_t Index, const wchar_t *Value, size_t Length)
 Set the value of a unicode array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_blob_elem_idx (lbmsdm_msg_t *Message, size_t Index, const void *Value, size_t Length)
 Set the value of a blob array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_boolean_elem_name (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 Add an array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_int8_elem_name (lbmsdm_msg_t *Message, const char *Name, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint8_elem_name (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_name (lbmsdm_msg_t *Message, const char *Name, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint16_elem_name (lbmsdm_msg_t *Message, const char *Name, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_name (lbmsdm_msg_t *Message, const char *Name, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_name (lbmsdm_msg_t *Message, const char *Name, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_name (lbmsdm_msg_t *Message, const char *Name, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_name (lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_float_elem_name (lbmsdm_msg_t *Message, const char *Name, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_double_elem_name (lbmsdm_msg_t *Message, const char *Name, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_name (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_name (lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_message_elem_name (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_string_elem_name (lbmsdm_msg_t *Message, const char *Name, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_add_unicode_elem_name (lbmsdm_msg_t *Message, const char *Name, const wchar_t *Value, size_t Length)
 Add a unicode array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_add_blob_elem_name (lbmsdm_msg_t *Message, const char *Name, const void *Value, size_t Length)
 Add a BLOB array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_add_boolean_elem (lbmsdm_iter_t *Iterator, uint8_t Value)
 Add an array field element in a message referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_add_int8_elem (lbmsdm_iter_t *Iterator, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_uint8_elem (lbmsdm_iter_t *Iterator, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_int16_elem (lbmsdm_iter_t *Iterator, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_uint16_elem (lbmsdm_iter_t *Iterator, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_int32_elem (lbmsdm_iter_t *Iterator, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_uint32_elem (lbmsdm_iter_t *Iterator, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_int64_elem (lbmsdm_iter_t *Iterator, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_uint64_elem (lbmsdm_iter_t *Iterator, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_float_elem (lbmsdm_iter_t *Iterator, float Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_double_elem (lbmsdm_iter_t *Iterator, double Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_decimal_elem (lbmsdm_iter_t *Iterator, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_timestamp_elem (lbmsdm_iter_t *Iterator, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_message_elem (lbmsdm_iter_t *Iterator, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_string_elem (lbmsdm_iter_t *Iterator, const char *Value)
 
LBMSDMExpDLL int lbmsdm_iter_add_unicode_elem (lbmsdm_iter_t *Iterator, const wchar_t *Value, size_t Length)
 Add a unicode array field element in a message referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_add_blob_elem (lbmsdm_iter_t *Iterator, const void *Value, size_t Length)
 Add a BLOB array field element in a message referenced by an iterator. More...
 
LBMSDMExpDLL const char * lbmsdm_msg_get_data (lbmsdm_msg_t *Message)
 Get the data buffer for a constructed message, after all fields have been added to the message. More...
 
LBMSDMExpDLL size_t lbmsdm_msg_get_datalen (lbmsdm_msg_t *Message)
 Get the length of the data buffer for a constructed message, after all fields have been added to the message. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_fldcnt (lbmsdm_msg_t *Message)
 Get the number of fields in a message. More...
 
LBMSDMExpDLL int lbmsdm_iter_create (lbmsdm_iter_t **Iterator, lbmsdm_msg_t *Message)
 Create an SDM message iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_destroy (lbmsdm_iter_t *Iterator)
 Destroy an SDM message iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_first (lbmsdm_iter_t *Iterator)
 Position an iterator to the first field in the message. More...
 
LBMSDMExpDLL int lbmsdm_iter_next (lbmsdm_iter_t *Iterator)
 Position an iterator to the next field in the message. More...
 
LBMSDMExpDLL const char * lbmsdm_msg_get_name_idx (lbmsdm_msg_t *Message, size_t Index)
 Get the name of a field in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_idx_name (lbmsdm_msg_t *Message, const char *Name)
 Get the index of a field in a message by field name. More...
 
LBMSDMExpDLL const char * lbmsdm_iter_get_name (lbmsdm_iter_t *Iterator)
 Get the name of the current field for an iterator. More...
 
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_name (lbmsdm_msg_t *Message, const char *Name)
 Get the type of a field in a message by field name. More...
 
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_idx (lbmsdm_msg_t *Message, size_t Index)
 Get the type of a field in a message by field index. More...
 
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_iter_get_type (lbmsdm_iter_t *Iterator)
 Get the type of the current field for an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_is_null_name (lbmsdm_msg_t *Message, const char *Name)
 Determine if a field in a message is null, by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_is_null_idx (lbmsdm_msg_t *Message, size_t Index)
 Determine if a field in a message is null, by field index. More...
 
LBMSDMExpDLL int lbmsdm_iter_is_null (lbmsdm_iter_t *Iterator)
 Determine if the field referenced by an iterator is null. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_name (lbmsdm_msg_t *Message, const char *Name)
 Get the number of elements in an array field in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_idx (lbmsdm_msg_t *Message, size_t Index)
 Get the number of elements in an array field by field index. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_elemcnt (lbmsdm_iter_t *Iterator)
 Get the number of elements in the current array field for an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_len_name (lbmsdm_msg_t *Message, const char *Name)
 Get the length (in bytes) required for a field in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_len_idx (lbmsdm_msg_t *Message, size_t Index)
 Get the length (in bytes) required for a field in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_len (lbmsdm_iter_t *Iterator)
 Get the length (in bytes) required for the current field for an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_elemlen_name (lbmsdm_msg_t *Message, const char *Name, size_t Element)
 Get the length (in bytes) required for an array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_elemlen_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element)
 Get the length (in bytes) required for an array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_elemlen (lbmsdm_iter_t *Iterator, size_t Element)
 Get the length (in bytes) required for an element of the current array field for an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_boolean_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t *Value)
 Fetch a field value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_int8_idx (lbmsdm_msg_t *Message, size_t Index, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint8_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int16_idx (lbmsdm_msg_t *Message, size_t Index, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint16_idx (lbmsdm_msg_t *Message, size_t Index, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int32_idx (lbmsdm_msg_t *Message, size_t Index, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint32_idx (lbmsdm_msg_t *Message, size_t Index, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int64_idx (lbmsdm_msg_t *Message, size_t Index, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint64_idx (lbmsdm_msg_t *Message, size_t Index, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_float_idx (lbmsdm_msg_t *Message, size_t Index, float *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_double_idx (lbmsdm_msg_t *Message, size_t Index, double *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_decimal_idx (lbmsdm_msg_t *Message, size_t Index, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_idx (lbmsdm_msg_t *Message, size_t Index, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_message_idx (lbmsdm_msg_t *Message, size_t Index, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_string_idx (lbmsdm_msg_t *Message, size_t Index, char *Value, size_t *Size)
 Fetch a string field value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_unicode_idx (lbmsdm_msg_t *Message, size_t Index, wchar_t *Value, size_t *Size)
 Fetch a unicode field value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_blob_idx (lbmsdm_msg_t *Message, size_t Index, void *Value, size_t *Size)
 Fetch a BLOB field value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_boolean_name (lbmsdm_msg_t *Message, const char *Name, uint8_t *Value)
 Fetch a field value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_int8_name (lbmsdm_msg_t *Message, const char *Name, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint8_name (lbmsdm_msg_t *Message, const char *Name, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int16_name (lbmsdm_msg_t *Message, const char *Name, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint16_name (lbmsdm_msg_t *Message, const char *Name, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int32_name (lbmsdm_msg_t *Message, const char *Name, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint32_name (lbmsdm_msg_t *Message, const char *Name, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int64_name (lbmsdm_msg_t *Message, const char *Name, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint64_name (lbmsdm_msg_t *Message, const char *Name, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_float_name (lbmsdm_msg_t *Message, const char *Name, float *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_double_name (lbmsdm_msg_t *Message, const char *Name, double *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_decimal_name (lbmsdm_msg_t *Message, const char *Name, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_name (lbmsdm_msg_t *Message, const char *Name, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_message_name (lbmsdm_msg_t *Message, const char *Name, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_string_name (lbmsdm_msg_t *Message, const char *Name, char *Value, size_t *Size)
 Fetch a string field value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_unicode_name (lbmsdm_msg_t *Message, const char *Name, wchar_t *Value, size_t *Size)
 Fetch a unicode field value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_blob_name (lbmsdm_msg_t *Message, const char *Name, void *Value, size_t *Size)
 Fetch a BLOB field value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_boolean (lbmsdm_iter_t *Iterator, uint8_t *Value)
 Fetch a field value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_int8 (lbmsdm_iter_t *Iterator, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint8 (lbmsdm_iter_t *Iterator, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int16 (lbmsdm_iter_t *Iterator, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint16 (lbmsdm_iter_t *Iterator, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int32 (lbmsdm_iter_t *Iterator, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint32 (lbmsdm_iter_t *Iterator, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int64 (lbmsdm_iter_t *Iterator, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint64 (lbmsdm_iter_t *Iterator, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_float (lbmsdm_iter_t *Iterator, float *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_double (lbmsdm_iter_t *Iterator, double *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_decimal (lbmsdm_iter_t *Iterator, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_timestamp (lbmsdm_iter_t *Iterator, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_message (lbmsdm_iter_t *Iterator, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_string (lbmsdm_iter_t *Iterator, char *Value, size_t *Size)
 Fetch a string field value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_unicode (lbmsdm_iter_t *Iterator, wchar_t *Value, size_t *Size)
 Fetch a unicode field value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_blob (lbmsdm_iter_t *Iterator, void *Value, size_t *Size)
 Fetch a BLOB field value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_boolean_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint8_t *Value)
 Fetch an array field element value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_int8_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint8_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int16_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint16_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int32_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint32_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int64_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint64_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_float_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, float *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_double_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, double *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_decimal_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_message_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_string_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, char *Value, size_t *Size)
 Fetch a string array field element value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_unicode_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, wchar_t *Value, size_t *Size)
 Fetch a unicode array field element value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_blob_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, void *Value, size_t *Size)
 Fetch a BLOB array field element value from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_boolean_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint8_t *Value)
 Fetch an array field element value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_int8_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint8_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int16_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint16_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int32_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint32_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_int64_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_uint64_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_float_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, float *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_double_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, double *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_decimal_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_message_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_msg_get_string_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, char *Value, size_t *Size)
 Fetch a string array field element value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_unicode_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, wchar_t *Value, size_t *Size)
 Fetch a unicode array field element value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_get_blob_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, void *Value, size_t *Size)
 Fetch a BLOB array field element value from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_boolean_elem (lbmsdm_iter_t *Iterator, size_t Element, uint8_t *Value)
 Fetch an array field element value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_int8_elem (lbmsdm_iter_t *Iterator, size_t Element, int8_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint8_elem (lbmsdm_iter_t *Iterator, size_t Element, uint8_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int16_elem (lbmsdm_iter_t *Iterator, size_t Element, int16_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint16_elem (lbmsdm_iter_t *Iterator, size_t Element, uint16_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int32_elem (lbmsdm_iter_t *Iterator, size_t Element, int32_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint32_elem (lbmsdm_iter_t *Iterator, size_t Element, uint32_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_int64_elem (lbmsdm_iter_t *Iterator, size_t Element, int64_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_uint64_elem (lbmsdm_iter_t *Iterator, size_t Element, uint64_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_float_elem (lbmsdm_iter_t *Iterator, size_t Element, float *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_double_elem (lbmsdm_iter_t *Iterator, size_t Element, double *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_decimal_elem (lbmsdm_iter_t *Iterator, size_t Element, lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_timestamp_elem (lbmsdm_iter_t *Iterator, size_t Element, struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_message_elem (lbmsdm_iter_t *Iterator, size_t Element, lbmsdm_msg_t **Value)
 
LBMSDMExpDLL int lbmsdm_iter_get_string_elem (lbmsdm_iter_t *Iterator, size_t Element, char *Value, size_t *Size)
 Fetch a string array field element value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_unicode_elem (lbmsdm_iter_t *Iterator, size_t Element, wchar_t *Value, size_t *Size)
 Fetch a unicode array field element value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_get_blob_elem (lbmsdm_iter_t *Iterator, size_t Element, void *Value, size_t *Size)
 Fetch a blob array field element value from the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_null_name (lbmsdm_msg_t *Message, const char *Name)
 Set a field in a message to null, by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_null_idx (lbmsdm_msg_t *Message, size_t Index)
 Set a field in a message to null, by field index. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_null (lbmsdm_iter_t *Iterator)
 Set the field referenced by an iterator to null. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t Value)
 Set a field value in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_idx (lbmsdm_msg_t *Message, size_t Index, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_idx (lbmsdm_msg_t *Message, size_t Index, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_idx (lbmsdm_msg_t *Message, size_t Index, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_idx (lbmsdm_msg_t *Message, size_t Index, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_idx (lbmsdm_msg_t *Message, size_t Index, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_idx (lbmsdm_msg_t *Message, size_t Index, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_idx (lbmsdm_msg_t *Message, size_t Index, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_idx (lbmsdm_msg_t *Message, size_t Index, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_idx (lbmsdm_msg_t *Message, size_t Index, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_idx (lbmsdm_msg_t *Message, size_t Index, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_idx (lbmsdm_msg_t *Message, size_t Index, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_idx (lbmsdm_msg_t *Message, size_t Index, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_idx (lbmsdm_msg_t *Message, size_t Index, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_idx (lbmsdm_msg_t *Message, size_t Index, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_idx (lbmsdm_msg_t *Message, size_t Index, const wchar_t *Value, size_t Length)
 Set a unicode field value in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_idx (lbmsdm_msg_t *Message, size_t Index, const void *Value, size_t Length)
 Set a BLOB field value in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_name (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 Set a field value in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_name (lbmsdm_msg_t *Message, const char *Name, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_name (lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_name (lbmsdm_msg_t *Message, const char *Name, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_name (lbmsdm_msg_t *Message, const char *Name, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_name (lbmsdm_msg_t *Message, const char *Name, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_name (lbmsdm_msg_t *Message, const char *Name, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_name (lbmsdm_msg_t *Message, const char *Name, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_name (lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_name (lbmsdm_msg_t *Message, const char *Name, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_name (lbmsdm_msg_t *Message, const char *Name, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_name (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_name (lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_name (lbmsdm_msg_t *Message, const char *Name, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_name (lbmsdm_msg_t *Message, const char *Name, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_name (lbmsdm_msg_t *Message, const char *Name, const wchar_t *Value, size_t Length)
 Set a unicode field value in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_name (lbmsdm_msg_t *Message, const char *Name, const void *Value, size_t Length)
 Set a BLOB field value in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_boolean (lbmsdm_iter_t *Iterator, uint8_t Value)
 Set a field value in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_int8 (lbmsdm_iter_t *Iterator, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint8 (lbmsdm_iter_t *Iterator, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int16 (lbmsdm_iter_t *Iterator, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint16 (lbmsdm_iter_t *Iterator, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int32 (lbmsdm_iter_t *Iterator, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint32 (lbmsdm_iter_t *Iterator, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int64 (lbmsdm_iter_t *Iterator, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint64 (lbmsdm_iter_t *Iterator, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_float (lbmsdm_iter_t *Iterator, float Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_double (lbmsdm_iter_t *Iterator, double Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_decimal (lbmsdm_iter_t *Iterator, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_timestamp (lbmsdm_iter_t *Iterator, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_message (lbmsdm_iter_t *Iterator, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_string (lbmsdm_iter_t *Iterator, const char *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_unicode (lbmsdm_iter_t *Iterator, const wchar_t *Value, size_t Length)
 Set a unicode field value in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_blob (lbmsdm_iter_t *Iterator, const void *Value, size_t Length)
 Set a BLOB field value in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_array_idx (lbmsdm_msg_t *Message, size_t Index)
 Set a field in a message by field index to an array field. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_array_idx (lbmsdm_msg_t *Message, size_t Index)
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_array_name (lbmsdm_msg_t *Message, const char *Name)
 Set a field in a message by field name to an array field. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_array_name (lbmsdm_msg_t *Message, const char *Name)
 
LBMSDMExpDLL int lbmsdm_iter_set_boolean_array (lbmsdm_iter_t *Iterator)
 Set a field in a message by field name to an array field. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_int8_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint8_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_int16_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint16_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_int32_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint32_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_int64_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint64_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_float_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_double_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_decimal_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_timestamp_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_message_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_string_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_unicode_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_iter_set_blob_array (lbmsdm_iter_t *Iterator)
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint8_t Value)
 Set the value of an array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const wchar_t *Value, size_t Length)
 Set the value of a unicode array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element, const void *Value, size_t Length)
 Set the value of a BLOB array field element in a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_boolean_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint8_t Value)
 Set the value of an array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_int8_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint8_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int16_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint16_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int32_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint32_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_int64_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_uint64_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_float_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, float Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_double_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, double Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_decimal_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_message_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_string_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const char *Value)
 
LBMSDMExpDLL int lbmsdm_msg_set_unicode_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const wchar_t *Value, size_t Length)
 Set the value of a unicode array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_msg_set_blob_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element, const void *Value, size_t Length)
 Set the value of a BLOB array field element in a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_boolean_elem (lbmsdm_iter_t *Iterator, size_t Element, uint8_t Value)
 Set the value of an array field element in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_int8_elem (lbmsdm_iter_t *Iterator, size_t Element, int8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint8_elem (lbmsdm_iter_t *Iterator, size_t Element, uint8_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int16_elem (lbmsdm_iter_t *Iterator, size_t Element, int16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint16_elem (lbmsdm_iter_t *Iterator, size_t Element, uint16_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int32_elem (lbmsdm_iter_t *Iterator, size_t Element, int32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint32_elem (lbmsdm_iter_t *Iterator, size_t Element, uint32_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_int64_elem (lbmsdm_iter_t *Iterator, size_t Element, int64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_uint64_elem (lbmsdm_iter_t *Iterator, size_t Element, uint64_t Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_float_elem (lbmsdm_iter_t *Iterator, size_t Element, float Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_double_elem (lbmsdm_iter_t *Iterator, size_t Element, double Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_decimal_elem (lbmsdm_iter_t *Iterator, size_t Element, const lbmsdm_decimal_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_timestamp_elem (lbmsdm_iter_t *Iterator, size_t Element, const struct timeval *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_message_elem (lbmsdm_iter_t *Iterator, size_t Element, const lbmsdm_msg_t *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_string_elem (lbmsdm_iter_t *Iterator, size_t Element, const char *Value)
 
LBMSDMExpDLL int lbmsdm_iter_set_unicode_elem (lbmsdm_iter_t *Iterator, size_t Element, const wchar_t *Value, size_t Length)
 Set the value of a unicode array field element in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_iter_set_blob_elem (lbmsdm_iter_t *Iterator, size_t Element, const void *Value, size_t Length)
 Set the value of a BLOB array field element in the field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_del_idx (lbmsdm_msg_t *Message, size_t Index)
 Delete a field from a message by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_del_name (lbmsdm_msg_t *Message, const char *Name)
 Delete a field from a message by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_del (lbmsdm_iter_t *Iterator)
 Delete a field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_del_elem_idx (lbmsdm_msg_t *Message, size_t Index, size_t Element)
 Delete an element from an array field by field index. More...
 
LBMSDMExpDLL int lbmsdm_msg_del_elem_name (lbmsdm_msg_t *Message, const char *Name, size_t Element)
 Delete an element from an array field by field name. More...
 
LBMSDMExpDLL int lbmsdm_iter_del_elem (lbmsdm_iter_t *Iterator, size_t Element)
 Delete an element from an array field referenced by an iterator. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_create (lbmsdm_msg_attr_t **Attributes)
 Create and fill an SDM message attribute object with the default values. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_delete (lbmsdm_msg_attr_t *Attributes)
 Delete an SDM message attribute object. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_dup (lbmsdm_msg_attr_t **Attributes, lbmsdm_msg_attr_t *Original)
 Duplicate an SDM message attribute object. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_setopt (lbmsdm_msg_attr_t *Attributes, const char *Option, void *Value, size_t Length)
 Set an option for the given SDM message attribute object. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_str_setopt (lbmsdm_msg_attr_t *Attributes, const char *Option, const char *Value)
 Set an option for the given SDM message attribute object using a string. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_getopt (lbmsdm_msg_attr_t *Attributes, const char *Option, void *Value, size_t *Length)
 Retrieve the value of an option for the given SDM message attribute. More...
 
LBMSDMExpDLL int lbmsdm_msg_attr_str_getopt (lbmsdm_msg_attr_t *Attributes, const char *Option, char *Value, size_t *Length)
 Retrieve the value of an option for the given SDM message attribute as a string. More...
 

Detailed Description

Ultra Messaging (UM) Self-Describing Message (SDM) API. The "lbmsdm.h" header file defines the APIs to create and parse Self-Describing Messages (SDM). The binary code is contained in the "lbm" library (dynamic on Unix: "liblbm.so", static on Unix: "liblbm.a", dynamic only on Windows: "lbm.dll"). There are also Java and .NET APIs. See Self Describing Messaging for general information on SDM. See UM C API for general information on the C API. See Fundamental Concepts for an introduction to Ultra Messaging.

Typedef Documentation

Structure to hold a scaled decimal number. A scaled decimal number consists of a mantissa $m$ and an exponent $exp$. It represents the value $m\cdot 10^{exp}$.

The mantissa is represented as a 64-bit signed integer. The exponent is represented as an 8-bit signed integer, and can range from -128 to 127.

Enumeration Type Documentation

anonymous enum

SDM field type definitions.

Enumerator
LBMSDM_TYPE_INVALID 

SDM field type: Type is invalid.

LBMSDM_TYPE_BOOLEAN 

SDM field type: Boolean (non-zero is true, zero is false).

LBMSDM_TYPE_INT8 

SDM field type: 8-bit signed integer.

LBMSDM_TYPE_UINT8 

SDM field type: 8-bit unsigned integer.

LBMSDM_TYPE_INT16 

SDM field type: 16-bit signed integer.

LBMSDM_TYPE_UINT16 

SDM field type: 16-bit unsigned integer.

LBMSDM_TYPE_INT32 

SDM field type: 32-bit signed integer.

LBMSDM_TYPE_UINT32 

SDM field type: 32-bit unsigned integer.

LBMSDM_TYPE_INT64 

SDM field type: 64-bit signed integer.

LBMSDM_TYPE_UINT64 

SDM field type: 64-bit unsigned integer.

LBMSDM_TYPE_FLOAT 

SDM field type: Single-precision floating point.

LBMSDM_TYPE_DOUBLE 

SDM field type: Double-precision floating point.

LBMSDM_TYPE_DECIMAL 

SDM field type: Decimal number.

LBMSDM_TYPE_TIMESTAMP 

SDM field type: Seconds and microseconds since the epoch (UTC).

LBMSDM_TYPE_MESSAGE 

SDM field type: Nested SDM message.

LBMSDM_TYPE_STRING 

SDM field type: Character string (ASCIZ).

LBMSDM_TYPE_UNICODE 

SDM field type: Unicode string.

LBMSDM_TYPE_BLOB 

SDM field type: Binary Large Object (BLOB).

LBMSDM_TYPE_ARRAY_BOOLEAN 

SDM field type: Array of Booleans (non-zero is true, zero is false).

LBMSDM_TYPE_ARRAY_INT8 

SDM field type: Array of 8-bit signed integers.

LBMSDM_TYPE_ARRAY_UINT8 

SDM field type: Array of 8-bit unsigned integers.

LBMSDM_TYPE_ARRAY_INT16 

SDM field type: Array of 16-bit signed integers.

LBMSDM_TYPE_ARRAY_UINT16 

SDM field type: Array of 16-bit unsigned integers.

LBMSDM_TYPE_ARRAY_INT32 

SDM field type: Array of 32-bit signed integers.

LBMSDM_TYPE_ARRAY_UINT32 

SDM field type: Array of 32-bit unsigned integers.

LBMSDM_TYPE_ARRAY_INT64 

SDM field type: Array of 64-bit signed integers.

LBMSDM_TYPE_ARRAY_UINT64 

SDM field type: Array of 64-bit unsigned integers.

LBMSDM_TYPE_ARRAY_FLOAT 

SDM field type: Array of single-precision floating points.

LBMSDM_TYPE_ARRAY_DOUBLE 

SDM field type: Array of double-precision floating points.

LBMSDM_TYPE_ARRAY_DECIMAL 

SDM field type: Array of decimal numbers.

LBMSDM_TYPE_ARRAY_TIMESTAMP 

SDM field type: Array of timestamps (seconds and microseconds since the epoch (UTC)).

LBMSDM_TYPE_ARRAY_MESSAGE 

SDM field type: Array of nested SDM messages.

LBMSDM_TYPE_ARRAY_STRING 

SDM field type: Array of character strings (ASCIZ).

LBMSDM_TYPE_ARRAY_UNICODE 

SDM field type: Array of unicode strings.

LBMSDM_TYPE_ARRAY_BLOB 

SDM field type: Array of Binary Large Objects (BLOB).

anonymous enum

SDM API function return codes.

Enumerator
LBMSDM_SUCCESS 

SDM return code: Operation was successful.

LBMSDM_FAILURE 

SDM return code: Operation failed. See lbmsdm_errnum() or lbmsdm_errmsg() for the reason.

LBMSDM_FIELD_IS_NULL 

SDM return code: Field is null.

LBMSDM_NO_MORE_FIELDS 

SDM return code: No more fields to iterate over.

LBMSDM_INSUFFICIENT_BUFFER_LENGTH 

SDM return code: Insufficient buffer length given.

anonymous enum

SDM error codes.

Enumerator
LBMSDM_ERR_EINVAL 

SDM error code: An invalid argument was passed.

LBMSDM_ERR_ENOMEM 

SDM error code: Operation could not be completed due to memory allocation error.

LBMSDM_ERR_NAMETOOLONG 

SDM error code: Field name is too long.

LBMSDM_ERR_DUPLICATE_FIELD 

SDM error code: The field being added to the message already exists.

LBMSDM_ERR_BAD_TYPE 

SDM error code: Invalid type.

LBMSDM_ERR_FIELD_NOT_FOUND 

SDM error code: The field does not exist in the message.

LBMSDM_ERR_MSG_INVALID 

SDM error code: The message is in an invalid form.

LBMSDM_ERR_CANNOT_CONVERT 

SDM error code: The field can not be converted as requested.

LBMSDM_ERR_NOT_ARRAY 

SDM error code: The field is not an array field.

LBMSDM_ERR_NOT_SCALAR 

SDM error code: The field is not a scalar field.

LBMSDM_ERR_ELEMENT_NOT_FOUND 

SDM error code: The specified array element does not exist.

LBMSDM_ERR_TYPE_NOT_SUPPORTED 

SDM error code: The specified type is not supported.

LBMSDM_ERR_TYPE_MISMATCH 

SDM error code: Type mismatch.

LBMSDM_ERR_UNICODE_CONVERSION 

SDM error code: Unicode conversion error.

LBMSDM_ERR_FIELD_IS_NULL 

SDM error code: Field is null.

LBMSDM_ERR_ADDING_FIELD 

SDM error code: Unable to add field.

LBMSDM_ERR_ITERATOR_INVALID 

SDM error code: Iterator doesn't reference a valid field.

LBMSDM_ERR_DELETING_FIELD 

SDM error code: Error deleting a field.

LBMSDM_ERR_INVALID_FIELD_NAME 

SDM error code: Invalid field name.

Function Documentation

LBMSDMExpDLL const char* lbmsdm_errmsg ( void  )

Return an ASCII string containing the error message last encountered by this thread.

Returns
Pointer to a static char array containing the error message.
LBMSDMExpDLL int lbmsdm_errnum ( void  )

Return the error number last encountered by this thread.

Returns
Integer error number (see LBMSDM_ERROR_*).
LBMSDMExpDLL int lbmsdm_iter_create ( lbmsdm_iter_t **  Iterator,
lbmsdm_msg_t Message 
)

Create an SDM message iterator.

Parameters
IteratorA pointer to a pointer to an SDM iterator object. Will be filled in by this function to point to the newly created lbmsdm_iter_t object.
MessageSDM message on which the iterator is to operate.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_iter_del ( lbmsdm_iter_t Iterator)

Delete a field referenced by an iterator.

Parameters
IteratorThe SDM iterator to use.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_iter_del_elem ( lbmsdm_iter_t Iterator,
size_t  Element 
)

Delete an element from an array field referenced by an iterator.

Parameters
IteratorThe SDM iterator to use.
ElementElement to be deleted.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_iter_destroy ( lbmsdm_iter_t Iterator)

Destroy an SDM message iterator.

Parameters
IteratorThe lbmsdm_iter_t object to destroy.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_iter_first ( lbmsdm_iter_t Iterator)

Position an iterator to the first field in the message.

Parameters
IteratorThe iterator to position.
Return values
LBMSDM_SUCCESSif successful
LBMSDM_NO_MORE_FIELDSif no fields exist in the message
LBMSDM_FAILUREif the operation failed
LBMSDMExpDLL int lbmsdm_iter_get_elemcnt ( lbmsdm_iter_t Iterator)

Get the number of elements in the current array field for an iterator.

Parameters
IteratorThe SDM iterator.
Returns
The number of elements in the array, or -1 if an error occurred.
Note
Calling this function for a non-array field will return 1 for the number of elements.
LBMSDMExpDLL int lbmsdm_iter_get_elemlen ( lbmsdm_iter_t Iterator,
size_t  Element 
)

Get the length (in bytes) required for an element of the current array field for an iterator.

Parameters
IteratorThe SDM iterator.
ElementElement index (zero-based).
Returns
The number of bytes required to store the field, or -1 if an error occurred.
LBMSDMExpDLL int lbmsdm_iter_get_len ( lbmsdm_iter_t Iterator)

Get the length (in bytes) required for the current field for an iterator.

Parameters
IteratorThe SDM iterator.
Returns
The number of bytes required to store the field, or -1 if an error occurred.
Note
Calling this function for an array field will return -1.
See also
lbmsdm_iter_get_field_array_size_index_elem()
LBMSDMExpDLL const char* lbmsdm_iter_get_name ( lbmsdm_iter_t Iterator)

Get the name of the current field for an iterator.

Parameters
IteratorThe SDM iterator.
Returns
The field name, or NULL if an error occurred.
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_iter_get_type ( lbmsdm_iter_t Iterator)

Get the type of the current field for an iterator.

Parameters
IteratorThe SDM iterator.
Returns
The field type, or LBMSDM_TYPE_INVALID if an error occurred.
LBMSDMExpDLL int lbmsdm_iter_is_null ( lbmsdm_iter_t Iterator)

Determine if the field referenced by an iterator is null.

Parameters
IteratorThe SDM iterator.
Return values
1if the field is null.
0if the field is present and not null.
LBMSDM_FAILUREif an error occurred.
LBMSDMExpDLL int lbmsdm_iter_next ( lbmsdm_iter_t Iterator)

Position an iterator to the next field in the message.

Parameters
IteratorThe iterator to position.
Return values
LBMSDM_SUCCESSif successful
LBMSDM_NO_MORE_FIELDSif no fields exist in the message
LBMSDM_FAILUREif the operation failed
LBMSDMExpDLL int lbmsdm_iter_set_null ( lbmsdm_iter_t Iterator)

Set the field referenced by an iterator to null.

Parameters
IteratorThe SDM iterator.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_create ( lbmsdm_msg_attr_t **  Attributes)

Create and fill an SDM message attribute object with the default values.

The attribute object is allocated and filled in with the default values that are used by lbmsdm_msg_t objects.

Parameters
AttributesPointer to a pointer to an SDM message attribute structure. Will be filled in by this function to point to the newly created lbmsdm_msg_attr_t object.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_delete ( lbmsdm_msg_attr_t Attributes)

Delete an SDM message attribute object.

The attribute object is cleaned up and deleted.

Parameters
AttributesPointer to an SDM message attribute structure as returned by lbmsdm_msg_attr_create or lbmsdm_msg_attr_dup.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_dup ( lbmsdm_msg_attr_t **  Attributes,
lbmsdm_msg_attr_t Original 
)

Duplicate an SDM message attribute object.

A new attribute object is created as a copy of an existing object.

Parameters
AttributesPointer to a pointer to an SDM message attribute structure. Will be filled in by this function to point to the newly created lbmsdm_msg_attr_t object.
OriginalPointer to an SDM message attribute structure as returned by lbmsdm_msg_attr_create or lbmsdm_msg_attr_dup, from which Attributes is initialized.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_getopt ( lbmsdm_msg_attr_t Attributes,
const char *  Option,
void *  Value,
size_t *  Length 
)

Retrieve the value of an option for the given SDM message attribute.

Parameters
AttributesPointer to an SDM message attribute structure.
OptionString containing the option name.
ValuePointer to the option value structure to be filled. The structure of the option value is specific to the option itself.
LengthLength (in bytes) of the Value structure when passed in. Upon return, this is set to the actual size of the filled-in structure.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_setopt ( lbmsdm_msg_attr_t Attributes,
const char *  Option,
void *  Value,
size_t  Length 
)

Set an option for the given SDM message attribute object.

Used before the message is created. NOTE: the attribute object must first be created with lbmsdm_msg_attr_create or lbmsdm_msg_attr_dup.

Parameters
AttributesPointer to an SDM message attribute structure.
OptionString containing the option name.
ValuePointer to the option value structure. The structure of the option value is specific to the option itself.
LengthLength (in bytes) of the Value structure.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_str_getopt ( lbmsdm_msg_attr_t Attributes,
const char *  Option,
char *  Value,
size_t *  Length 
)

Retrieve the value of an option for the given SDM message attribute as a string.

Parameters
AttributesPointer to an SDM message attribute structure.
OptionString containing the option name.
ValuePointer to the string to be filled in.
LengthMaximum length (in bytes) of the Value string when passed in. Upon return, this is set to the size of the formatted string.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_attr_str_setopt ( lbmsdm_msg_attr_t Attributes,
const char *  Option,
const char *  Value 
)

Set an option for the given SDM message attribute object using a string.

Used before the message is created. NOTE: the attribute object must first be created with lbmsdm_msg_attr_create or lbmsdm_msg_attr_dup.

Parameters
AttributesPointer to an SDM message attribute structure.
OptionString containing the option name.
ValueString containing the option value. The format of the string is specific to the option itself.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_clear ( lbmsdm_msg_t Message)

Clear an SDM message, deleting all fields in the message.

Parameters
MessageThe SDM message to clear.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_clone ( lbmsdm_msg_t **  Message,
const lbmsdm_msg_t Original 
)

Clone an existing SDM message. This function is not thread safe.

Parameters
MessageA pointer to a pointer to an SDM message object. Will be filled in by this function to point to the newly created lbmsdm_msg_t object.
OriginalThe SDM message to be cloned.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_create ( lbmsdm_msg_t **  Message)

Create an SDM message to be filled in and sent.

Parameters
MessageA pointer to a pointer to an SDM message object. Will be filled in by this function to point to the newly created lbmsdm_msg_t object.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_create_ex ( lbmsdm_msg_t **  Message,
const lbmsdm_msg_attr_t Attributes 
)

Create an SDM message to be filled in and sent, with options.

Parameters
MessageA pointer to a pointer to an SDM message object. Will be filled in by this function to point to the newly created lbmsdm_msg_t object.
AttributesA pointer to an lbmsdm_msg_attr_t structure used to initialize the message options.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_del_elem_idx ( lbmsdm_msg_t Message,
size_t  Index,
size_t  Element 
)

Delete an element from an array field by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
ElementElement to be deleted.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_del_elem_name ( lbmsdm_msg_t Message,
const char *  Name,
size_t  Element 
)

Delete an element from an array field by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
ElementElement to be deleted.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_del_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Delete a field from a message by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_del_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Delete a field from a message by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_destroy ( lbmsdm_msg_t Message)

Destroy an SDM message object.

Parameters
MessageThe SDM message to destroy.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_dump ( lbmsdm_msg_t Message,
char *  Buffer,
size_t  Size 
)

Dump a message into a printable string.

Parameters
MessageThe SDM message to dump.
BufferBuffer into which to dump the message.
SizeMaximum size of Buffer.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
Note
Buffer will be null-terminated. If Buffer isn't large enough to contain the entire message, it will be truncated to fit the available space. The values for unicode and BLOB fields will not formatted.
LBMSDMExpDLL const char* lbmsdm_msg_get_data ( lbmsdm_msg_t Message)

Get the data buffer for a constructed message, after all fields have been added to the message.

Parameters
MessageThe SDM message.
Returns
A pointer to the data buffer, or NULL if any error occurs.
Note
The pointer returned by lbmsdm_msg_get_data is invalidated when the message is deleted (via lbmsdm_msg_destroy), any field is added to the message, any field is deleted from the message, or any field in the message is changed (either the field value or type). In other words, any time the message is changed, the pointer returned is no longer valid.
LBMSDMExpDLL size_t lbmsdm_msg_get_datalen ( lbmsdm_msg_t Message)

Get the length of the data buffer for a constructed message, after all fields have been added to the message.

Parameters
MessageThe SDM message.
Returns
The length of the data buffer, or 0 if any error occurs.
LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Get the number of elements in an array field by field index.

Parameters
MessageThe SDM message from which the array size is to be fetched.
IndexField index.
Returns
The number of elements in the array, or -1 if an error occurred.
Note
Calling this function for a non-array field will return 1 for the number of elements.
LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Get the number of elements in an array field in a message by field name.

Parameters
MessageThe SDM message from which the array size is to be fetched.
NameField name.
Returns
The number of elements in the array, or -1 if an error occurred.
Note
Calling this function for a non-array field will return 1 for the number of elements.
LBMSDMExpDLL int lbmsdm_msg_get_elemlen_idx ( lbmsdm_msg_t Message,
size_t  Index,
size_t  Element 
)

Get the length (in bytes) required for an array field element in a message by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
ElementElement index (zero-based).
Returns
The number of bytes required to store the field, or -1 if an error occurred.
LBMSDMExpDLL int lbmsdm_msg_get_elemlen_name ( lbmsdm_msg_t Message,
const char *  Name,
size_t  Element 
)

Get the length (in bytes) required for an array field element in a message by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
ElementElement index (zero-based).
Returns
The number of bytes required to store the field, or -1 if an error occurred.
LBMSDMExpDLL int lbmsdm_msg_get_fldcnt ( lbmsdm_msg_t Message)

Get the number of fields in a message.

Parameters
MessageThe SDM message.
Returns
The number of fields in the message, or -1 if an error occurs.
Note
Only top-level fields are counted. If a message field exists within the message, the number of fields in the contained message are not counted. Instead, the message field counts as one field. Likewise, array fields contribute only 1 to the field count, not the number of elements in the field.
LBMSDMExpDLL int lbmsdm_msg_get_idx_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Get the index of a field in a message by field name.

Parameters
MessageThe SDM message from which the field name is to be fetched.
NameField name.
Returns
The field index, or -1 if an error occurred.
LBMSDMExpDLL int lbmsdm_msg_get_len_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Get the length (in bytes) required for a field in a message by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
Returns
The number of bytes required to store the field, or -1 if an error occurred.
Note
Calling this function for an array field will return -1.
See also
lbmsdm_msg_get_field_array_size_index_elem()
LBMSDMExpDLL int lbmsdm_msg_get_len_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Get the length (in bytes) required for a field in a message by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
Returns
The number of bytes required to store the field, or -1 if an error occurred.
Note
Calling this function for an array field will return -1.
See also
lbmsdm_msg_get_field_array_size_name_elem()
LBMSDMExpDLL const char* lbmsdm_msg_get_name_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Get the name of a field in a message by field index.

Parameters
MessageThe SDM message from which the field name is to be fetched.
IndexField index.
Returns
The field name, or NULL if an error occurred.
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Get the type of a field in a message by field index.

Parameters
MessageThe SDM message from which the field type is to be fetched.
IndexField index.
Returns
The field type, or LBMSDM_TYPE_INVALID if an error occurred.
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Get the type of a field in a message by field name.

Parameters
MessageThe SDM message from which the field type is to be fetched.
NameField name.
Returns
The field type, or LBMSDM_TYPE_INVALID if an error occurred.
LBMSDMExpDLL int lbmsdm_msg_is_null_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Determine if a field in a message is null, by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
Return values
1if the field is null.
0if the field is present and not null.
LBMSDM_FAILUREif an error occurred.
LBMSDMExpDLL int lbmsdm_msg_is_null_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Determine if a field in a message is null, by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
Return values
1if the field is null.
0if the field is present and not null.
LBMSDM_FAILUREif an error occurred.
LBMSDMExpDLL int lbmsdm_msg_parse ( lbmsdm_msg_t **  Message,
const char *  Data,
size_t  Length 
)

Create an SDM message to be parsed and processed from an existing buffer.

Parameters
MessageA pointer to a pointer to an SDM message object. Will be filled in by this function to point to the newly created lbmsdm_msg_t object.
DataA pointer to the buffer from which the message should be constructed.
LengthLength of Data.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_parse_ex ( lbmsdm_msg_t **  Message,
const char *  Data,
size_t  Length,
const lbmsdm_msg_attr_t Attributes 
)

Create an SDM message to be parsed and processed from an existing buffer, with options.

Parameters
MessageA pointer to a pointer to an SDM message object. Will be filled in by this function to point to the newly created lbmsdm_msg_t object.
DataA pointer to the buffer from which the message should be constructed.
LengthLength of Data.
AttributesA pointer to an lbmsdm_msg_attr_t structure used to initialize the message options.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_parse_reuse ( lbmsdm_msg_t Message,
const char *  Data,
size_t  Length 
)

Create an SDM message to be parsed and processed from an existing buffer, using an already-existing lbmsdm_msg_t structure.

Parameters
MessageA pointer to an existing SDM message object, into which the message buffer is parsed. The message will be cleared before parsing.
DataA pointer to the buffer from which the message should be constructed.
LengthLength of Data.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_set_null_idx ( lbmsdm_msg_t Message,
size_t  Index 
)

Set a field in a message to null, by field index.

Parameters
MessageThe SDM message containing the field.
IndexField index.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_msg_set_null_name ( lbmsdm_msg_t Message,
const char *  Name 
)

Set a field in a message to null, by field name.

Parameters
MessageThe SDM message containing the field.
NameField name.
Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.
LBMSDMExpDLL int lbmsdm_win32_static_init ( void  )

Perform required initialization under Windows. This function needs to be called before any other LBM SDM API function, but only when using the static version of the LBM SDM library on Windows.

Returns
LBMSDM_SUCCESS if successful, LBMSDM_FAILURE otherwise.