UM C API  6.16.1
lbmsdm.h
Go to the documentation of this file.
1 
17 /*
18  $Id: //UMprod/REL_6_16_1/29West/lbm/src/sdm/lbm/lbmsdm.h#1 $
19  All of the documentation and software included in this and any
20  other Informatica Inc. Ultra Messaging Releases
21  Copyright (C) Informatica Inc. All rights reserved.
22 
23  Redistribution and use in source and binary forms, with or without
24  modification, are permitted only as covered by the terms of a
25  valid software license agreement with Informatica Inc.
26 
27  (C) Copyright 2007,2023 Informatica Inc. All Rights Reserved.
28 
29  THE SOFTWARE IS PROVIDED "AS IS" AND INFORMATICA DISCLAIMS ALL WARRANTIES
30  EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF
31  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
32  PURPOSE. INFORMATICA DOES NOT WARRANT THAT USE OF THE SOFTWARE WILL BE
33  UNINTERRUPTED OR ERROR-FREE. INFORMATICA SHALL NOT, UNDER ANY CIRCUMSTANCES, BE
34  LIABLE TO LICENSEE FOR LOST PROFITS, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR
35  INDIRECT DAMAGES ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE
36  TRANSACTIONS CONTEMPLATED HEREUNDER, EVEN IF INFORMATICA HAS BEEN APPRISED OF
37  THE LIKELIHOOD OF SUCH DAMAGES.
38 
39  The LBM Self-Describing Message (SDM) API provides a framework for applications
40  to create and use messages containing self-describing data (name and type).
41  An SDM message contains one or more \b fields. Each field consists of:
42  - A name, limited to 255 characters in length. Field names are \em not case-sensitive.
43  So, "price" is the same as "Price" is the same as "PRICE".
44  - A type (discussed below).
45  - A value (particular to the field type).
46  Each named field may only appear once in a message. If multiple fields of the same name
47  and type are needed, create an array field. A field in a nested message \b may have the
48  same name as a field in the outer message, though.
49 
50  \par Field types
51  The following field types (and arrays thereof) are supported by SDM:
52  <table>
53  <tr>
54  <td>Description</td>
55  <td>SDM Type</td>
56  <td>C Type</td>
57  </tr>
58  <tr>
59  <td>Boolean</td>
60  <td>::LBMSDM_TYPE_BOOLEAN</td>
61  <td><tt>uint8_t</tt></td>
62  </tr>
63  <tr>
64  <td>8-bit signed integer</td>
65  <td>::LBMSDM_TYPE_INT8</td>
66  <td><tt>int8_t</tt></td>
67  </tr>
68  <tr>
69  <td>8-bit unsigned integer</td>
70  <td>::LBMSDM_TYPE_UINT8</td>
71  <td><tt>uint8_t</tt></td>
72  </tr>
73  <tr>
74  <td>16-bit signed integer</td>
75  <td>::LBMSDM_TYPE_INT16</td>
76  <td><tt>int16_t</tt></td>
77  </tr>
78  <tr>
79  <td>16-bit unsigned integer</td>
80  <td>::LBMSDM_TYPE_UINT16</td>
81  <td><tt>uint16_t</tt></td>
82  </tr>
83  <tr>
84  <td>32-bit signed integer</td>
85  <td>::LBMSDM_TYPE_INT32</td>
86  <td><tt>int32_t</tt></td>
87  </tr>
88  <tr>
89  <td>32-bit unsigned integer</td>
90  <td>::LBMSDM_TYPE_UINT32</td>
91  <td><tt>uint32_t</tt></td>
92  </tr>
93  <tr>
94  <td>64-bit signed integer</td>
95  <td>::LBMSDM_TYPE_INT64</td>
96  <td><tt>int64_t</tt></td>
97  </tr>
98  <tr>
99  <td>64-bit unsigned integer</td>
100  <td>::LBMSDM_TYPE_UINT64</td>
101  <td><tt>uint64_t</tt></td>
102  </tr>
103  <tr>
104  <td>Single-precision floating point</td>
105  <td>::LBMSDM_TYPE_FLOAT</td>
106  <td><tt>float</tt></td>
107  </tr>
108  <tr>
109  <td>Double-precision floating point</td>
110  <td>::LBMSDM_TYPE_DOUBLE</td>
111  <td><tt>double</tt></td>
112  </tr>
113  <tr>
114  <td>String</td>
115  <td>::LBMSDM_TYPE_STRING</td>
116  <td><tt>char *</tt></td>
117  </tr>
118  <tr>
119  <td>Scaled decimal</td>
120  <td>::LBMSDM_TYPE_DECIMAL</td>
121  <td>::lbmsdm_decimal_t</td>
122  </tr>
123  <tr>
124  <td>Timestamp</td>
125  <td>::LBMSDM_TYPE_TIMESTAMP</td>
126  <td><tt>struct timeval</tt></td>
127  </tr>
128  <tr>
129  <td>Nested message</td>
130  <td>::LBMSDM_TYPE_MESSAGE</td>
131  <td>::lbmsdm_msg_t <tt>*</tt></td>
132  </tr>
133  <tr>
134  <td>Binary large object (BLOB)</td>
135  <td>::LBMSDM_TYPE_BLOB</td>
136  <td><tt>void *</tt></td>
137  </tr>
138  <tr>
139  <td>Unicode string</td>
140  <td>::LBMSDM_TYPE_UNICODE</td>
141  <td><tt>wchar_t *</tt></td>
142  </tr>
143  </table>
144  \par
145  Note that arrays are homogeneous.
146  All elements of an array must be of the same type.
147  An error is reported if an attempt is made to add an element of one type to
148  an array containing elements of a different type.
149  \par Building a message
150  A message must be created (via ::lbmsdm_msg_create() or ::lbmsdm_msg_parse())
151  before fields can be added.
152  \par
153  Once a field exists within a message,
154  it can be referenced in one of three ways:
155  - By the name associated with the field.
156  - By index. This refers to the sequential position of the field within a message.
157  The first field has index 0, the second has index 1, and so forth.
158  - By iterator. See below for more information on iterators.
159  \par Adding fields to a message
160  Scalar (non-array) fields are added to a message via the <tt>lbmsdm_msg_add_xxx()</tt>
161  API functions,
162  where <tt>xxx</tt> is the type of the field being added.
163  See the module \ref add for information on these functions.
164  \par
165  When adding a field, data of the appropriate type must be supplied.
166  As an example, to add a 32-bit signed integer field named "quantity" to a message:
167  \code
168 int32_t quant = 50;
169 int rc;
170 rc = lbmsdm_msg_add_int32(msg, "quantity", quant);
171  \endcode
172  \par
173  Alternatively,
174  literals may be used to specify the value.
175  The above example could also be coded as:
176  \code
177 rc = lbmsdm_msg_add_int32(msg, "quantity", 50);
178  \endcode
179  \par Adding array fields to a message
180  Array fields are added to a message in two steps.
181  First, the field itself is added via the <tt>lbmsdm_msg_add_xxx_array()</tt> API functions,
182  where <tt>xxx</tt> is the type of the field being added.
183  This does not provide a value for the field.
184  See the module \ref add_array for information on these functions.
185  \par
186  Second,
187  individual elements are added to the array field.
188  This is done via the <tt>lbmsdm_msg_add_xxx_elem_idx()</tt>,
189  <tt>lbmsdm_msg_add_xxx_elem_name()</tt>,
190  and <tt>lbmsdm_iter_add_xxx_elem()</tt> API functions.
191  See the modules \ref add_elem_idx, \ref add_elem_name, and \ref add_elem_iter
192  for detailed information on these functions.
193  \par
194  As an example,
195  the following code illustrates how to create a string array field,
196  and add 3 elements to it.
197  \code
198 rc = lbmsdm_msg_add_string_array(msg, "string_array");
199 rc = lbmsdm_msg_add_string_elem_name(msg, "string_array", "String1");
200 rc = lbmsdm_msg_add_string_elem_name(msg, "string_array", "String2");
201 rc = lbmsdm_msg_add_string_elem_name(msg, "string_array", "String3");
202  \endcode
203  \par Serializing the message
204  Once the SDM message is constructed, it must be serialized for transmission.
205  The API function ::lbmsdm_msg_get_data() returns a static pointer to a buffer
206  containing the serialized form of the message, suitable for transmission.
207  The length of the serialized data may be obtained via the API function
208  ::lbmsdm_msg_get_datalen().
209  For example, a constructed message may be sent by:
210  \code
211 rc = lbm_src_send(src, lbmsdm_msg_get_data(msg), lbmsdm_msg_get_length(msg), 0);
212  \endcode
213  \par
214  The pointer returned by ::lbmsdm_msg_get_data() is owned by the SDM API,
215  and will automatically be freed when the message is destroyed.
216  \par Deserializing a message
217  When a message is received, it must be deserialized so that individual fields can be
218  accessed. This is done via the ::lbmsdm_msg_parse() API function:
219  \code
220 lbmsdm_msg_t * sdmmsg;
221 rc = lbmsdm_msg_parse(&sdmmsg, lbmmsg->data, lbmmsg->len);
222  \endcode
223  \par Disposing of a message
224  Once an SDM message (created by either the ::lbmsdm_msg_create() or ::lbmsdm_msg_parse()
225  API calls) is no longer needed, it must be disposed of to avoid a resource leak.
226  This is done via the ::lbmsdm_msg_destroy() API call.
227  \par Retrieving field information
228  A number of API functions are available to retrieve information about individual fields.
229  - ::lbmsdm_msg_get_fldcnt() returns the number of fields in the message.
230  - ::lbmsdm_msg_get_name_idx() and ::lbmsdm_iter_get_name() return the field name
231  associated with the referenced field.
232  - ::lbmsdm_msg_get_type_name(), ::lbmsdm_msg_get_type_idx(), and
233  ::lbmsdm_iter_get_type() return the type of the referenced field.
234  - ::lbmsdm_msg_get_elemcnt_name(), ::lbmsdm_msg_get_elemcnt_idx(),
235  and ::lbmsdm_iter_get_elemcnt() return the number of elements in an
236  array field.
237  - ::lbmsdm_msg_get_len_name(), ::lbmsdm_msg_get_len_idx(), and
238  ::lbmsdm_iter_get_len() return the length (in bytes) required for a field.
239  - ::lbmsdm_msg_get_elemlen_name(), ::lbmsdm_msg_get_elemlen_idx(),
240  and ::lbmsdm_iter_get_elemlen() return the length (in bytes) for a specific
241  element in an array field.
242  \par Fetching fields from a message
243  When fetching a field from a message, the field may be referenced by name, by index,
244  or via an iterator.
245  \par
246  Scalar (non-array) fields may be retrieved via the <tt>lbmsdm_msg_get_xxx_name()</tt>,
247  <tt>lbmsdm_msg_get_xxx_idx()</tt>, or <tt>lbmsdm_iter_get_xxx()</tt> functions,
248  where <tt>xxx</tt> is the type the field value should be retrieved as.
249  The sections \ref get_scalar_name, \ref get_scalar_idx, and \ref get_scalar_iter contain
250  detailed information on these functions.
251  \par
252  Array field elements may be retrieved via the <tt>lbmsdm_msg_get_xxx_elem_name()</tt>,
253  <tt>lbmsdm_msg_get_xxx_elem_idx()</tt>, or <tt>lbmsdm_iter_get_xxx_elem()</tt> functions,
254  where <tt>xxx</tt> is the type the field element value should be retrieved as.
255  The sections \ref get_elem_name, \ref get_elem_idx, and \ref get_elem_iter contain
256  detailed information on these functions.
257  \par Type conversion
258  A limited form of automatic type conversion is provided.
259  Numeric-based fields are convertable to other numeric-based fields.
260  For example, a field defined as <tt>::LBMSDM_TYPE_BOOLEAN</tt> may be retrieved as
261  an <tt>::LBMSDM_TYPE_FLOAT</tt>.
262  The numeric types are:
263  <ul>
264  <li>boolean</li>
265  <li>int8</li>
266  <li>uint8</li>
267  <li>int16</li>
268  <li>uint16</li>
269  <li>int32</li>
270  <li>uint32</li>
271  <li>int64</li>
272  <li>uint64</li>
273  <li>float</li>
274  <li>double</li>
275  <li>decimal</li>
276  </ul>
277  Note that if the value being retrieved cannot be represented in the
278  type it is retrieved as, the result is not defined, but no error is
279  indicated. For example if a uint32 field with the value 300 is retrieved
280  as an int8, the result is not defined.
281  \par
282  Non-numeric types may not be converted to other types. The non-numeric types are:
283  <ul>
284  <li>string</li>
285  <li>unicode</li>
286  <li>timestamp</li>
287  <li>BLOB</li>
288  <li>message</li>
289  </ul>
290  \par
291  The above conversion rules apply also when retrieving array elements.
292  \par Fetching string, unicode, and BLOB values
293  When fetching a field or array element value as a string, unicode, or BLOB,
294  the data is copied into a buffer provided by the application.
295  In addition to the buffer,
296  the size of the buffer must be given.
297  The size is specified in bytes for string and BLOB fields,
298  and in <tt>wchar_t</tt>s for unicode fields.
299  If the size specified is too small for the data,
300  the error code ::LBMSDM_INSUFFICIENT_BUFFER_LENGTH is returned.
301  \par
302  \par Fetching message fields
303  When fetching the value of a message field,
304  a copy of the message is created (via ::lbmsdm_msg_clone()) and returned.
305  It is the application's responsibility to destroy the message (via ::lbmsdm_msg_destroy())
306  when it is no longer needed.
307  \par Modifying fields in a message
308  Existing fields in a message may be modified, both in terms of the field type and
309  field value.
310  For scalar (non-array) fields,
311  the <tt>lbmsdm_msg_set_xxx_idx()</tt>, <tt>lbmsdm_msg_set_xxx_name()</tt>,
312  and <tt>lbmsdm_iter_set_xxx()</tt> API functions may be used,
313  where <tt>xxx</tt> is the type to be assigned to the field.
314  See the sections \ref set_idx, \ref set_name, and \ref set_iter for information
315  on these functions.
316  \par
317  For array fields,
318  the <tt>lbmsdm_msg_set_xxx_array_idx()</tt>, <tt>lbmsdm_msg_set_xxx_array_name()</tt>,
319  and <tt>lbmsdm_iter_set_xxx_array()</tt> API functions may be used,
320  where <tt>xxx</tt> is the type to be assigned to the field.
321  See the sections \ref set_array_idx, \ref set_array_name, and \ref set_array_iter
322  for information on these functions.
323  As when adding an array field to a message,
324  once the field type has been set to an array type,
325  individual elements must be added to the array field.
326  \par
327  Individual elements of an array field may be modified via the <tt>lbmsdm_msg_set_xxx_elem_idx()</tt>,
328  <tt>lbmsdm_msg_set_xxx_elem_name()</tt>, and <tt>lbmsdm_iter_set_xxx_elem()</tt> API functions.
329  See the sections \ref set_elem_idx, \ref set_elem_name, and \ref set_elem_iter for
330  information on these functions.
331  Note that arrays must contain homogeneous elements,
332  so the type of an array element may not be changed,
333  and is considered an error.
334  \par Deleting fields from a message
335  A field may be deleted from a message via the ::lbmsdm_msg_del_idx(),
336  ::lbmsdm_msg_del_name(), and ::lbmsdm_iter_del() API calls.
337  Deleting a field will cause any fields following it to be moved down one position,
338  changing the index of those fields and potentially invalidating any iterators for
339  that message.
340  \par Deleting elements from an array field
341  Individual elements may be deleted from an array field via the ::lbmsdm_msg_del_elem_idx(),
342  ::lbmsdm_msg_del_elem_name(), and ::lbmsdm_iter_del_elem() API functions.
343  \par Null fields
344  SDM supports the concept of a \b null field.
345  A null field is present in the message,
346  but has no value associated with it.
347  Once added to a message,
348  a field may be set to null via the ::lbmsdm_msg_set_null_idx(), ::lbmsdm_msg_set_null_name(),
349  or ::lbmsdm_iter_set_null() API functions.
350  Setting the field (which may be either a scalar or array field) to null
351  removes any values currently associated with the field.
352  \par
353  The ::lbmsdm_msg_is_null_idx(), ::lbmsdm_msg_is_null_name(), and ::lbmsdm_iter_is_null()
354  API functions allow an application to determine if a given field is null.
355  \par
356  Attempting to retrieve a value or element value from a null field is not allowed,
357  and will return an error.
358  \par Iterators
359  A field iterator allows sequential operation on the fields of a message without requiring
360  the field name or index.
361  An iterator is created via ::lbmsdm_iter_create(),
362  the first field in a message is located via ::lbmsdm_iter_first(),
363  and the next field is located via ::lbmsdm_iter_next().
364  An iterator should be destroyed when no longer needed, using the ::lbmsdm_iter_destroy()
365  API call.
366  \par
367  Message fields may be queried, fetched, modified, and deleted via an iterator.
368  In each case,
369  the operation applies to the field currently referenced by the iterator.
370  \par Error information
371  All functions return a value to indicate the success of failure of the operation.
372  Most return ::LBMSDM_SUCCESS to indicate success, or ::LBMSDM_FAILURE otherwise.
373  Consult the individual function documentation for exceptions.
374  \par
375  The function ::lbmsdm_errnum() can be used to retrieve a detailed error code for the last
376  error encountered, while ::lbmsdm_errmsg() will return a descriptive error message.
377  \par Message Options
378  The performance of SDM can be tuned through the use of message options.
379  Options are contained within an attributes object (::lbmsdm_msg_attr_t),
380  which is created via ::lbmsdm_msg_attr_create().
381  When no longer needed,
382  an attributes object can be discarded by calling ::lbmsdm_msg_attr_delete().
383  Individual options within an attributes object can be set via ::lbmsdm_msg_attr_setopt()
384  and ::lbmsdm_msg_attr_str_setopt(),
385  and can be queried via ::lbmsdm_msg_attr_getopt() and ::lbmsdm_msg_attr_str_getopt().
386  A set of options can be specified at message creation time using ::lbmsdm_msg_create_ex()
387  and ::lbmsdm_msg_parse_ex().
388  \par
389  The following table lists the supported message options.
390  <table>
391  <tr>
392  <th>Option</th>
393  <th>Data type</th>
394  <th>Allowed values</th>
395  <th>Default</th>
396  <th>Description</th>
397  </tr>
398  <tr>
399  <th align="left"><tt>field_array_allocation</tt></th>
400  <td align="center"><tt>int</tt></td>
401  <td align="center">Any integer >= 0</td>
402  <td align="center">32</td>
403  <td>
404  Internally, SDM maintains an array of field entries within a message.
405  This option controls both the number of field entries initially allocated
406  when the message is created,
407  and the increment used when the array must be expanded when a field is added
408  but the array is full.
409  <p>
410  If it is known that a large number of fields will be added to a message,
411  setting this option to a larger value will result in a slight performance
412  boost,
413  since reallocation of the field array will occur less frequently.
414  </p>
415  <p>
416  Similarly,
417  if the number of fields to be added is small,
418  setting this option to a smaller value will effect a small savings in memory
419  usage (as well as reducing memory fragmentation).
420  </p>
421  </td>
422  </tr>
423  <tr>
424  <th align="left"><tt>name_tree</tt></th>
425  <td align="center"><tt>int</tt></td>
426  <td align="center">1 (enable) or 0 (disable)</td>
427  <td align="center">1</td>
428  <td>
429  In order to speed up access to fields by name,
430  a tree of field names is maintained for each message.
431  Maintenance of this tree
432  (such as when fields are added or deleted)
433  does incur some overhead.
434  <p>
435  In situations where fields are only added to a message
436  (and not retrieved),
437  this overhead can be eliminated by setting this option to <TT>0</TT>.
438  Be aware,
439  however,
440  that retrieving a field by name from a message for which the name
441  tree is disabled,
442  will degenerate to using a linear search of the field array to
443  locate the named field.
444  This can incur much more overhead than was saved by not using
445  the name tree.
446  </p>
447  <p>
448  In addition,
449  the use of the name tree allows SDM to detect
450  (and prevent)
451  the attempt to add two fields with the same name.
452  Disabling the name tree also disables this safeguard.
453  Further,
454  any attempts to parse a message with duplicate field names using
455  ::lbmsdm_msg_parse() or ::lbmsdm_msg_parse_ex() will fail
456  and return an error.
457  </p>
458  </td>
459  </tr>
460  <tr>
461  <th align="left"><tt>integer_index</tt></th>
462  <td align="center"><tt>int</tt></td>
463  <td align="center">1 (enable) or 0 (disable)</td>
464  <td align="center">0</td>
465  <td>
466  Some optimizations can be done within SDM if it is known that each field
467  name will be the string representation of a non-negative integer.
468  Rather than looking up by name,
469  each field name is used as the index of the field,
470  and name lookups can be faster.
471  <p>
472  This option requires each field name to be a string representation of a
473  non-negative integer.
474  Any attempts to add a field or parse a message containing a field name which
475  is not the string representation of a non-negative integer,
476  when this option is set,
477  will fail and return an error.
478  </p>
479  </td>
480  </tr>
481  </table>
482  \par
483  As an example,
484  the following code fragment creates an attributes object,
485  sets options,
486  get the options,
487  creates a message using the attributes object,
488  then destroys the attributes object.
489  For the sake of brevity,
490  error checking has been omitted,
491  as has the code to add fields to the message.
492  \code
493 lbmsdm_msg_attr_t * attr;
494 lbmsdm_msg_t * msg;
495 int name_tree;
496 int alloc_size;
497 char val_buf[256];
498 size_t val_len;
499 
500 lbmsdm_msg_attr_create(&attr);
501 
502 name_tree = 0;
503 lbmsdm_msg_attr_setopt(attr, "name_tree", (void *)&name_tree, sizeof(name_tree));
504 lbmsdm_msg_attr_str_setopt(attr, "field_array_allocation", "128");
505 
506 val_len = sizeof(val_buf);
507 lbmsdm_msg_attr_str_getopt(attr, "name_tree", val_buf, &val_len);
508 printf("name_tree=%s\n", val_buf);
509 val_len = sizeof(alloc_size);
510 lbmsdm_msg_attr_getopt(attr, "field_array_allocation", (void *)&alloc_size, &val_len);
511 printf("field_array_allocation=%d\n", alloc_size);
512 
513 lbmsdm_msg_create_ex(&msg, attr);
514 
515 lbmsdm_msg_attr_delete(attr);
516  \endcode
517 */
518 
519 #if !defined(LBMSDM_H_INCLUDED)
520 #define LBMSDM_H_INCLUDED
521 
522 #if defined(__cplusplus)
523 extern "C" {
524 #endif
525 
526 #include <stdlib.h>
527 #if defined(_WIN32)
528  #include <windows.h>
529  #include <winsock2.h>
530 #if !defined(DONT_TYPEDEF_INT_T)
531  typedef __int8 int8_t;
532  typedef __int16 int16_t;
533  typedef __int32 int32_t;
534  typedef __int64 int64_t;
535 #endif
536  typedef unsigned __int8 uint8_t;
537  typedef unsigned __int16 uint16_t;
538  typedef unsigned __int32 uint32_t;
539  typedef unsigned __int64 uint64_t;
540 
541 #if (_MSC_VER < 1900)
542  /* C99 printf format macros missing from VC. */
543  #define PRId8 "d"
544  #define PRId16 "d"
545  #define PRId32 "d"
546  #define PRId64 "I64d"
547  #define PRIu8 "u"
548  #define PRIu16 "u"
549  #define PRIu32 "u"
550  #define PRIu64 "I64u"
551 #endif
552 
553 #elif defined(__VMS)
554  #include <inttypes.h>
555  #define PRId8 "d"
556  #define PRId16 "d"
557  #define PRId32 "d"
558  #define PRId64 "lld"
559  #define PRIu8 "u"
560  #define PRIu16 "u"
561  #define PRIu32 "u"
562  #define PRIu64 "llu"
563 #else
564  #include <inttypes.h>
565  #include <sys/time.h>
566 #endif
567 
568 /* Directives to show how we treat exporting functions with Windows from the DLL */
569 #if defined(_WIN32)
570  #if defined(_DLL) && defined(LBM_EXPORT_SYMS)
571  #define LBMSDMExpDLL __declspec(dllexport)
572  #elif defined(LBM_STATIC_LIB)
573  #define LBMSDMExpDLL
574  #else
575  #define LBMSDMExpDLL __declspec(dllimport)
576  #endif
577 #elif defined(__TANDEM)
578  #if defined(LBM_EXPORT_SYMS)
579  #define LBMSDMExpDLL export$
580  #else
581  #define LBMSDMExpDLL import$
582  #endif
583 #else
584  #define LBMSDMExpDLL
585 #endif
586 
589 #define LBMSDM_MAX_FIELD_NAME_LENGTH 255
590 
591 struct lbmsdm_msg_attr_t_stct;
594 typedef struct lbmsdm_msg_attr_t_stct lbmsdm_msg_attr_t;
595 
596 struct lbmsdm_msg_t_stct;
599 typedef struct lbmsdm_msg_t_stct lbmsdm_msg_t;
600 
603 typedef uint16_t lbmsdm_field_type_t;
604 
605 struct lbmsdm_iter_t_stct;
608 typedef struct lbmsdm_iter_t_stct lbmsdm_iter_t;
609 
610 #define LBMSDM_TYPE_MODIFIER_ARRAY 0x0100
611 
613 enum
614 {
652  LBMSDM_TYPE_ARRAY_BOOLEAN = LBMSDM_TYPE_BOOLEAN | LBMSDM_TYPE_MODIFIER_ARRAY,
654  LBMSDM_TYPE_ARRAY_INT8 = LBMSDM_TYPE_INT8 | LBMSDM_TYPE_MODIFIER_ARRAY,
656  LBMSDM_TYPE_ARRAY_UINT8 = (LBMSDM_TYPE_UINT8 | LBMSDM_TYPE_MODIFIER_ARRAY),
658  LBMSDM_TYPE_ARRAY_INT16 = (LBMSDM_TYPE_INT16 | LBMSDM_TYPE_MODIFIER_ARRAY),
660  LBMSDM_TYPE_ARRAY_UINT16 = (LBMSDM_TYPE_UINT16 | LBMSDM_TYPE_MODIFIER_ARRAY),
662  LBMSDM_TYPE_ARRAY_INT32 = (LBMSDM_TYPE_INT32 | LBMSDM_TYPE_MODIFIER_ARRAY),
664  LBMSDM_TYPE_ARRAY_UINT32 = (LBMSDM_TYPE_UINT32 | LBMSDM_TYPE_MODIFIER_ARRAY),
666  LBMSDM_TYPE_ARRAY_INT64 = (LBMSDM_TYPE_INT64 | LBMSDM_TYPE_MODIFIER_ARRAY),
668  LBMSDM_TYPE_ARRAY_UINT64 = (LBMSDM_TYPE_UINT64 | LBMSDM_TYPE_MODIFIER_ARRAY),
670  LBMSDM_TYPE_ARRAY_FLOAT = (LBMSDM_TYPE_FLOAT | LBMSDM_TYPE_MODIFIER_ARRAY),
672  LBMSDM_TYPE_ARRAY_DOUBLE = (LBMSDM_TYPE_DOUBLE | LBMSDM_TYPE_MODIFIER_ARRAY),
674  LBMSDM_TYPE_ARRAY_DECIMAL = (LBMSDM_TYPE_DECIMAL | LBMSDM_TYPE_MODIFIER_ARRAY),
676  LBMSDM_TYPE_ARRAY_TIMESTAMP = (LBMSDM_TYPE_TIMESTAMP | LBMSDM_TYPE_MODIFIER_ARRAY),
678  LBMSDM_TYPE_ARRAY_MESSAGE = (LBMSDM_TYPE_MESSAGE | LBMSDM_TYPE_MODIFIER_ARRAY),
680  LBMSDM_TYPE_ARRAY_STRING = (LBMSDM_TYPE_STRING | LBMSDM_TYPE_MODIFIER_ARRAY),
682  LBMSDM_TYPE_ARRAY_UNICODE = (LBMSDM_TYPE_UNICODE | LBMSDM_TYPE_MODIFIER_ARRAY),
684  LBMSDM_TYPE_ARRAY_BLOB = (LBMSDM_TYPE_BLOB | LBMSDM_TYPE_MODIFIER_ARRAY)
685 };
686 
689 enum
690 {
701 };
702 
705 enum
706 {
745 };
746 
755 typedef struct lbmsdm_decimal_t_stct
756 {
758  int64_t mant;
760  int8_t exp;
762 
766 LBMSDMExpDLL int lbmsdm_errnum(void);
767 
772 LBMSDMExpDLL const char * lbmsdm_errmsg(void);
773 
774 #if defined(_WIN32) || defined(DOXYGEN)
775 
780 LBMSDMExpDLL int lbmsdm_win32_static_init(void);
781 #endif
782 
789 LBMSDMExpDLL int lbmsdm_msg_create(lbmsdm_msg_t * * Message);
790 
799 LBMSDMExpDLL int lbmsdm_msg_create_ex(lbmsdm_msg_t * * Message, const lbmsdm_msg_attr_t * Attributes);
800 
809 LBMSDMExpDLL int lbmsdm_msg_parse(lbmsdm_msg_t * * Message, const char * Data, size_t Length);
810 
821 LBMSDMExpDLL int lbmsdm_msg_parse_ex(lbmsdm_msg_t * * Message, const char * Data, size_t Length, const lbmsdm_msg_attr_t * Attributes);
822 
832 LBMSDMExpDLL int lbmsdm_msg_parse_reuse(lbmsdm_msg_t * Message, const char * Data, size_t Length);
833 
841 LBMSDMExpDLL int lbmsdm_msg_clone(lbmsdm_msg_t * * Message, const lbmsdm_msg_t * Original);
842 
847 LBMSDMExpDLL int lbmsdm_msg_clear(lbmsdm_msg_t * Message);
848 
853 LBMSDMExpDLL int lbmsdm_msg_destroy(lbmsdm_msg_t * Message);
854 
864 LBMSDMExpDLL int lbmsdm_msg_dump(lbmsdm_msg_t * Message, char * Buffer, size_t Size);
865 
877 LBMSDMExpDLL int lbmsdm_msg_add_boolean(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
878 
882 LBMSDMExpDLL int lbmsdm_msg_add_int8(lbmsdm_msg_t * Message, const char * Name, int8_t Value);
883 
887 LBMSDMExpDLL int lbmsdm_msg_add_uint8(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
888 
892 LBMSDMExpDLL int lbmsdm_msg_add_int16(lbmsdm_msg_t * Message, const char * Name, int16_t Value);
893 
897 LBMSDMExpDLL int lbmsdm_msg_add_uint16(lbmsdm_msg_t * Message, const char * Name, uint16_t Value);
898 
902 LBMSDMExpDLL int lbmsdm_msg_add_int32(lbmsdm_msg_t * Message, const char * Name, int32_t Value);
903 
907 LBMSDMExpDLL int lbmsdm_msg_add_uint32(lbmsdm_msg_t * Message, const char * Name, uint32_t Value);
908 
912 LBMSDMExpDLL int lbmsdm_msg_add_int64(lbmsdm_msg_t * Message, const char * Name, int64_t Value);
913 
917 LBMSDMExpDLL int lbmsdm_msg_add_uint64(lbmsdm_msg_t * Message, const char * Name, uint64_t Value);
918 
922 LBMSDMExpDLL int lbmsdm_msg_add_float(lbmsdm_msg_t * Message, const char * Name, float Value);
923 
927 LBMSDMExpDLL int lbmsdm_msg_add_double(lbmsdm_msg_t * Message, const char * Name, double Value);
928 
932 LBMSDMExpDLL int lbmsdm_msg_add_decimal(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_decimal_t * Value);
933 
937 LBMSDMExpDLL int lbmsdm_msg_add_timestamp(lbmsdm_msg_t * Message, const char * Name, const struct timeval * Value);
938 
942 LBMSDMExpDLL int lbmsdm_msg_add_message(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_msg_t * Value);
943 
947 LBMSDMExpDLL int lbmsdm_msg_add_string(lbmsdm_msg_t * Message, const char * Name, const char * Value);
948 
957 LBMSDMExpDLL int lbmsdm_msg_add_unicode(lbmsdm_msg_t * Message, const char * Name, const wchar_t * Value, size_t Length);
958 
967 LBMSDMExpDLL int lbmsdm_msg_add_blob(lbmsdm_msg_t * Message, const char * Name, const void * Value, size_t Length);
968 
978 LBMSDMExpDLL int lbmsdm_msg_add_boolean_array(lbmsdm_msg_t * Message, const char * Name);
979 
983 LBMSDMExpDLL int lbmsdm_msg_add_int8_array(lbmsdm_msg_t * Message, const char * Name);
984 
988 LBMSDMExpDLL int lbmsdm_msg_add_uint8_array(lbmsdm_msg_t * Message, const char * Name);
989 
993 LBMSDMExpDLL int lbmsdm_msg_add_int16_array(lbmsdm_msg_t * Message, const char * Name);
994 
998 LBMSDMExpDLL int lbmsdm_msg_add_uint16_array(lbmsdm_msg_t * Message, const char * Name);
999 
1003 LBMSDMExpDLL int lbmsdm_msg_add_int32_array(lbmsdm_msg_t * Message, const char * Name);
1004 
1008 LBMSDMExpDLL int lbmsdm_msg_add_uint32_array(lbmsdm_msg_t * Message, const char * Name);
1009 
1013 LBMSDMExpDLL int lbmsdm_msg_add_int64_array(lbmsdm_msg_t * Message, const char * Name);
1014 
1018 LBMSDMExpDLL int lbmsdm_msg_add_uint64_array(lbmsdm_msg_t * Message, const char * Name);
1019 
1023 LBMSDMExpDLL int lbmsdm_msg_add_float_array(lbmsdm_msg_t * Message, const char * Name);
1024 
1028 LBMSDMExpDLL int lbmsdm_msg_add_double_array(lbmsdm_msg_t * Message, const char * Name);
1029 
1033 LBMSDMExpDLL int lbmsdm_msg_add_decimal_array(lbmsdm_msg_t * Message, const char * Name);
1034 
1038 LBMSDMExpDLL int lbmsdm_msg_add_timestamp_array(lbmsdm_msg_t * Message, const char * Name);
1039 
1043 LBMSDMExpDLL int lbmsdm_msg_add_message_array(lbmsdm_msg_t * Message, const char * Name);
1044 
1048 LBMSDMExpDLL int lbmsdm_msg_add_string_array(lbmsdm_msg_t * Message, const char * Name);
1049 
1053 LBMSDMExpDLL int lbmsdm_msg_add_unicode_array(lbmsdm_msg_t * Message, const char * Name);
1054 
1058 LBMSDMExpDLL int lbmsdm_msg_add_blob_array(lbmsdm_msg_t * Message, const char * Name);
1059 
1071 LBMSDMExpDLL int lbmsdm_msg_add_boolean_elem_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t Value);
1072 
1076 LBMSDMExpDLL int lbmsdm_msg_add_int8_elem_idx(lbmsdm_msg_t * Message, size_t Index, int8_t Value);
1077 
1081 LBMSDMExpDLL int lbmsdm_msg_add_uint8_elem_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t Value);
1082 
1086 LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_idx(lbmsdm_msg_t * Message, size_t Index, int16_t Value);
1087 
1091 LBMSDMExpDLL int lbmsdm_msg_add_uint16_elem_idx(lbmsdm_msg_t * Message, size_t Index, uint16_t Value);
1092 
1096 LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_idx(lbmsdm_msg_t * Message, size_t Index, int32_t Value);
1097 
1101 LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_idx(lbmsdm_msg_t * Message, size_t Index, uint32_t Value);
1102 
1106 LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_idx(lbmsdm_msg_t * Message, size_t Index, int64_t Value);
1107 
1111 LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_idx(lbmsdm_msg_t * Message, size_t Index, uint64_t Value);
1112 
1116 LBMSDMExpDLL int lbmsdm_msg_add_float_elem_idx(lbmsdm_msg_t * Message, size_t Index, float Value);
1117 
1121 LBMSDMExpDLL int lbmsdm_msg_add_double_elem_idx(lbmsdm_msg_t * Message, size_t Index, double Value);
1122 
1126 LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_idx(lbmsdm_msg_t * Message, size_t Index, const lbmsdm_decimal_t * Value);
1127 
1131 LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_idx(lbmsdm_msg_t * Message, size_t Index, const struct timeval * Value);
1132 
1136 LBMSDMExpDLL int lbmsdm_msg_add_message_elem_idx(lbmsdm_msg_t * Message, size_t Index, const lbmsdm_msg_t * Value);
1137 
1141 LBMSDMExpDLL int lbmsdm_msg_add_string_elem_idx(lbmsdm_msg_t * Message, size_t Index, const char * Value);
1142 
1151 LBMSDMExpDLL int lbmsdm_msg_add_unicode_elem_idx(lbmsdm_msg_t * Message, size_t Index, const wchar_t * Value, size_t Length);
1152 
1161 LBMSDMExpDLL int lbmsdm_msg_add_blob_elem_idx(lbmsdm_msg_t * Message, size_t Index, const void * Value, size_t Length);
1162 
1174 LBMSDMExpDLL int lbmsdm_msg_add_boolean_elem_name(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
1175 
1179 LBMSDMExpDLL int lbmsdm_msg_add_int8_elem_name(lbmsdm_msg_t * Message, const char * Name, int8_t Value);
1180 
1184 LBMSDMExpDLL int lbmsdm_msg_add_uint8_elem_name(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
1185 
1189 LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_name(lbmsdm_msg_t * Message, const char * Name, int16_t Value);
1190 
1194 LBMSDMExpDLL int lbmsdm_msg_add_uint16_elem_name(lbmsdm_msg_t * Message, const char * Name, uint16_t Value);
1195 
1199 LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_name(lbmsdm_msg_t * Message, const char * Name, int32_t Value);
1200 
1204 LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_name(lbmsdm_msg_t * Message, const char * Name, uint32_t Value);
1205 
1209 LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_name(lbmsdm_msg_t * Message, const char * Name, int64_t Value);
1210 
1214 LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_name(lbmsdm_msg_t * Message, const char * Name, uint64_t Value);
1215 
1219 LBMSDMExpDLL int lbmsdm_msg_add_float_elem_name(lbmsdm_msg_t * Message, const char * Name, float Value);
1220 
1224 LBMSDMExpDLL int lbmsdm_msg_add_double_elem_name(lbmsdm_msg_t * Message, const char * Name, double Value);
1225 
1229 LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_name(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_decimal_t * Value);
1230 
1234 LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_name(lbmsdm_msg_t * Message, const char * Name, const struct timeval * Value);
1235 
1239 LBMSDMExpDLL int lbmsdm_msg_add_message_elem_name(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_msg_t * Value);
1240 
1244 LBMSDMExpDLL int lbmsdm_msg_add_string_elem_name(lbmsdm_msg_t * Message, const char * Name, const char * Value);
1245 
1254 LBMSDMExpDLL int lbmsdm_msg_add_unicode_elem_name(lbmsdm_msg_t * Message, const char * Name, const wchar_t * Value, size_t Length);
1255 
1264 LBMSDMExpDLL int lbmsdm_msg_add_blob_elem_name(lbmsdm_msg_t * Message, const char * Name, const void * Value, size_t Length);
1265 
1276 LBMSDMExpDLL int lbmsdm_iter_add_boolean_elem(lbmsdm_iter_t * Iterator, uint8_t Value);
1277 
1281 LBMSDMExpDLL int lbmsdm_iter_add_int8_elem(lbmsdm_iter_t * Iterator, int8_t Value);
1282 
1286 LBMSDMExpDLL int lbmsdm_iter_add_uint8_elem(lbmsdm_iter_t * Iterator, uint8_t Value);
1287 
1291 LBMSDMExpDLL int lbmsdm_iter_add_int16_elem(lbmsdm_iter_t * Iterator, int16_t Value);
1292 
1296 LBMSDMExpDLL int lbmsdm_iter_add_uint16_elem(lbmsdm_iter_t * Iterator, uint16_t Value);
1297 
1301 LBMSDMExpDLL int lbmsdm_iter_add_int32_elem(lbmsdm_iter_t * Iterator, int32_t Value);
1302 
1306 LBMSDMExpDLL int lbmsdm_iter_add_uint32_elem(lbmsdm_iter_t * Iterator, uint32_t Value);
1307 
1311 LBMSDMExpDLL int lbmsdm_iter_add_int64_elem(lbmsdm_iter_t * Iterator, int64_t Value);
1312 
1316 LBMSDMExpDLL int lbmsdm_iter_add_uint64_elem(lbmsdm_iter_t * Iterator, uint64_t Value);
1317 
1321 LBMSDMExpDLL int lbmsdm_iter_add_float_elem(lbmsdm_iter_t * Iterator, float Value);
1322 
1326 LBMSDMExpDLL int lbmsdm_iter_add_double_elem(lbmsdm_iter_t * Iterator, double Value);
1327 
1331 LBMSDMExpDLL int lbmsdm_iter_add_decimal_elem(lbmsdm_iter_t * Iterator, const lbmsdm_decimal_t * Value);
1332 
1336 LBMSDMExpDLL int lbmsdm_iter_add_timestamp_elem(lbmsdm_iter_t * Iterator, const struct timeval * Value);
1337 
1341 LBMSDMExpDLL int lbmsdm_iter_add_message_elem(lbmsdm_iter_t * Iterator, const lbmsdm_msg_t * Value);
1342 
1346 LBMSDMExpDLL int lbmsdm_iter_add_string_elem(lbmsdm_iter_t * Iterator, const char * Value);
1347 
1355 LBMSDMExpDLL int lbmsdm_iter_add_unicode_elem(lbmsdm_iter_t * Iterator, const wchar_t * Value, size_t Length);
1356 
1364 LBMSDMExpDLL int lbmsdm_iter_add_blob_elem(lbmsdm_iter_t * Iterator, const void * Value, size_t Length);
1365 
1377 LBMSDMExpDLL const char * lbmsdm_msg_get_data(lbmsdm_msg_t * Message);
1378 
1385 LBMSDMExpDLL size_t lbmsdm_msg_get_datalen(lbmsdm_msg_t * Message);
1386 
1395 LBMSDMExpDLL int lbmsdm_msg_get_fldcnt(lbmsdm_msg_t * Message);
1396 
1404 LBMSDMExpDLL int lbmsdm_iter_create(lbmsdm_iter_t * * Iterator, lbmsdm_msg_t * Message);
1405 
1410 LBMSDMExpDLL int lbmsdm_iter_destroy(lbmsdm_iter_t * Iterator);
1411 
1418 LBMSDMExpDLL int lbmsdm_iter_first(lbmsdm_iter_t * Iterator);
1419 
1426 LBMSDMExpDLL int lbmsdm_iter_next(lbmsdm_iter_t * Iterator);
1427 
1433 LBMSDMExpDLL const char * lbmsdm_msg_get_name_idx(lbmsdm_msg_t * Message, size_t Index);
1434 
1440 LBMSDMExpDLL int lbmsdm_msg_get_idx_name(lbmsdm_msg_t * Message, const char * Name);
1441 
1446 LBMSDMExpDLL const char * lbmsdm_iter_get_name(lbmsdm_iter_t * Iterator);
1447 
1453 LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_name(lbmsdm_msg_t * Message, const char * Name);
1454 
1460 LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_msg_get_type_idx(lbmsdm_msg_t * Message, size_t Index);
1461 
1466 LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_iter_get_type(lbmsdm_iter_t * Iterator);
1467 
1475 LBMSDMExpDLL int lbmsdm_msg_is_null_name(lbmsdm_msg_t * Message, const char * Name);
1476 
1484 LBMSDMExpDLL int lbmsdm_msg_is_null_idx(lbmsdm_msg_t * Message, size_t Index);
1485 
1492 LBMSDMExpDLL int lbmsdm_iter_is_null(lbmsdm_iter_t * Iterator);
1493 
1501 LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_name(lbmsdm_msg_t * Message, const char * Name);
1502 
1510 LBMSDMExpDLL int lbmsdm_msg_get_elemcnt_idx(lbmsdm_msg_t * Message, size_t Index);
1511 
1518 LBMSDMExpDLL int lbmsdm_iter_get_elemcnt(lbmsdm_iter_t * Iterator);
1519 
1527 LBMSDMExpDLL int lbmsdm_msg_get_len_name(lbmsdm_msg_t * Message, const char * Name);
1528 
1536 LBMSDMExpDLL int lbmsdm_msg_get_len_idx(lbmsdm_msg_t * Message, size_t Index);
1537 
1544 LBMSDMExpDLL int lbmsdm_iter_get_len(lbmsdm_iter_t * Iterator);
1545 
1552 LBMSDMExpDLL int lbmsdm_msg_get_elemlen_name(lbmsdm_msg_t * Message, const char * Name, size_t Element);
1553 
1560 LBMSDMExpDLL int lbmsdm_msg_get_elemlen_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element);
1561 
1567 LBMSDMExpDLL int lbmsdm_iter_get_elemlen(lbmsdm_iter_t * Iterator, size_t Element);
1568 
1580 LBMSDMExpDLL int lbmsdm_msg_get_boolean_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t * Value);
1581 
1585 LBMSDMExpDLL int lbmsdm_msg_get_int8_idx(lbmsdm_msg_t * Message, size_t Index, int8_t * Value);
1586 
1590 LBMSDMExpDLL int lbmsdm_msg_get_uint8_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t * Value);
1591 
1595 LBMSDMExpDLL int lbmsdm_msg_get_int16_idx(lbmsdm_msg_t * Message, size_t Index, int16_t * Value);
1596 
1600 LBMSDMExpDLL int lbmsdm_msg_get_uint16_idx(lbmsdm_msg_t * Message, size_t Index, uint16_t * Value);
1601 
1605 LBMSDMExpDLL int lbmsdm_msg_get_int32_idx(lbmsdm_msg_t * Message, size_t Index, int32_t * Value);
1606 
1610 LBMSDMExpDLL int lbmsdm_msg_get_uint32_idx(lbmsdm_msg_t * Message, size_t Index, uint32_t * Value);
1611 
1615 LBMSDMExpDLL int lbmsdm_msg_get_int64_idx(lbmsdm_msg_t * Message, size_t Index, int64_t * Value);
1616 
1620 LBMSDMExpDLL int lbmsdm_msg_get_uint64_idx(lbmsdm_msg_t * Message, size_t Index, uint64_t * Value);
1621 
1625 LBMSDMExpDLL int lbmsdm_msg_get_float_idx(lbmsdm_msg_t * Message, size_t Index, float * Value);
1626 
1630 LBMSDMExpDLL int lbmsdm_msg_get_double_idx(lbmsdm_msg_t * Message, size_t Index, double * Value);
1631 
1635 LBMSDMExpDLL int lbmsdm_msg_get_decimal_idx(lbmsdm_msg_t * Message, size_t Index, lbmsdm_decimal_t * Value);
1636 
1640 LBMSDMExpDLL int lbmsdm_msg_get_timestamp_idx(lbmsdm_msg_t * Message, size_t Index, struct timeval * Value);
1641 
1645 LBMSDMExpDLL int lbmsdm_msg_get_message_idx(lbmsdm_msg_t * Message, size_t Index, lbmsdm_msg_t * * Value);
1646 
1661 LBMSDMExpDLL int lbmsdm_msg_get_string_idx(lbmsdm_msg_t * Message, size_t Index, char * Value, size_t * Size);
1662 
1675 LBMSDMExpDLL int lbmsdm_msg_get_unicode_idx(lbmsdm_msg_t * Message, size_t Index, wchar_t * Value, size_t * Size);
1676 
1689 LBMSDMExpDLL int lbmsdm_msg_get_blob_idx(lbmsdm_msg_t * Message, size_t Index, void * Value, size_t * Size);
1690 
1702 LBMSDMExpDLL int lbmsdm_msg_get_boolean_name(lbmsdm_msg_t * Message, const char * Name, uint8_t * Value);
1703 
1707 LBMSDMExpDLL int lbmsdm_msg_get_int8_name(lbmsdm_msg_t * Message, const char * Name, int8_t * Value);
1708 
1712 LBMSDMExpDLL int lbmsdm_msg_get_uint8_name(lbmsdm_msg_t * Message, const char * Name, uint8_t * Value);
1713 
1717 LBMSDMExpDLL int lbmsdm_msg_get_int16_name(lbmsdm_msg_t * Message, const char * Name, int16_t * Value);
1718 
1722 LBMSDMExpDLL int lbmsdm_msg_get_uint16_name(lbmsdm_msg_t * Message, const char * Name, uint16_t * Value);
1723 
1727 LBMSDMExpDLL int lbmsdm_msg_get_int32_name(lbmsdm_msg_t * Message, const char * Name, int32_t * Value);
1728 
1732 LBMSDMExpDLL int lbmsdm_msg_get_uint32_name(lbmsdm_msg_t * Message, const char * Name, uint32_t * Value);
1733 
1737 LBMSDMExpDLL int lbmsdm_msg_get_int64_name(lbmsdm_msg_t * Message, const char * Name, int64_t * Value);
1738 
1742 LBMSDMExpDLL int lbmsdm_msg_get_uint64_name(lbmsdm_msg_t * Message, const char * Name, uint64_t * Value);
1743 
1747 LBMSDMExpDLL int lbmsdm_msg_get_float_name(lbmsdm_msg_t * Message, const char * Name, float * Value);
1748 
1752 LBMSDMExpDLL int lbmsdm_msg_get_double_name(lbmsdm_msg_t * Message, const char * Name, double * Value);
1753 
1757 LBMSDMExpDLL int lbmsdm_msg_get_decimal_name(lbmsdm_msg_t * Message, const char * Name, lbmsdm_decimal_t * Value);
1758 
1762 LBMSDMExpDLL int lbmsdm_msg_get_timestamp_name(lbmsdm_msg_t * Message, const char * Name, struct timeval * Value);
1763 
1767 LBMSDMExpDLL int lbmsdm_msg_get_message_name(lbmsdm_msg_t * Message, const char * Name, lbmsdm_msg_t * * Value);
1768 
1783 LBMSDMExpDLL int lbmsdm_msg_get_string_name(lbmsdm_msg_t * Message, const char * Name, char * Value, size_t * Size);
1784 
1797 LBMSDMExpDLL int lbmsdm_msg_get_unicode_name(lbmsdm_msg_t * Message, const char * Name, wchar_t * Value, size_t * Size);
1798 
1811 LBMSDMExpDLL int lbmsdm_msg_get_blob_name(lbmsdm_msg_t * Message, const char * Name, void * Value, size_t * Size);
1812 
1823 LBMSDMExpDLL int lbmsdm_iter_get_boolean(lbmsdm_iter_t * Iterator, uint8_t * Value);
1824 
1828 LBMSDMExpDLL int lbmsdm_iter_get_int8(lbmsdm_iter_t * Iterator, int8_t * Value);
1829 
1833 LBMSDMExpDLL int lbmsdm_iter_get_uint8(lbmsdm_iter_t * Iterator, uint8_t * Value);
1834 
1838 LBMSDMExpDLL int lbmsdm_iter_get_int16(lbmsdm_iter_t * Iterator, int16_t * Value);
1839 
1843 LBMSDMExpDLL int lbmsdm_iter_get_uint16(lbmsdm_iter_t * Iterator, uint16_t * Value);
1844 
1848 LBMSDMExpDLL int lbmsdm_iter_get_int32(lbmsdm_iter_t * Iterator, int32_t * Value);
1849 
1853 LBMSDMExpDLL int lbmsdm_iter_get_uint32(lbmsdm_iter_t * Iterator, uint32_t * Value);
1854 
1858 LBMSDMExpDLL int lbmsdm_iter_get_int64(lbmsdm_iter_t * Iterator, int64_t * Value);
1859 
1863 LBMSDMExpDLL int lbmsdm_iter_get_uint64(lbmsdm_iter_t * Iterator, uint64_t * Value);
1864 
1868 LBMSDMExpDLL int lbmsdm_iter_get_float(lbmsdm_iter_t * Iterator, float * Value);
1869 
1873 LBMSDMExpDLL int lbmsdm_iter_get_double(lbmsdm_iter_t * Iterator, double * Value);
1874 
1878 LBMSDMExpDLL int lbmsdm_iter_get_decimal(lbmsdm_iter_t * Iterator, lbmsdm_decimal_t * Value);
1879 
1883 LBMSDMExpDLL int lbmsdm_iter_get_timestamp(lbmsdm_iter_t * Iterator, struct timeval * Value);
1884 
1888 LBMSDMExpDLL int lbmsdm_iter_get_message(lbmsdm_iter_t * Iterator, lbmsdm_msg_t * * Value);
1889 
1903 LBMSDMExpDLL int lbmsdm_iter_get_string(lbmsdm_iter_t * Iterator, char * Value, size_t * Size);
1904 
1916 LBMSDMExpDLL int lbmsdm_iter_get_unicode(lbmsdm_iter_t * Iterator, wchar_t * Value, size_t * Size);
1917 
1929 LBMSDMExpDLL int lbmsdm_iter_get_blob(lbmsdm_iter_t * Iterator, void * Value, size_t * Size);
1930 
1943 LBMSDMExpDLL int lbmsdm_msg_get_boolean_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint8_t * Value);
1944 
1948 LBMSDMExpDLL int lbmsdm_msg_get_int8_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int8_t * Value);
1949 
1953 LBMSDMExpDLL int lbmsdm_msg_get_uint8_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint8_t * Value);
1954 
1958 LBMSDMExpDLL int lbmsdm_msg_get_int16_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int16_t * Value);
1959 
1963 LBMSDMExpDLL int lbmsdm_msg_get_uint16_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint16_t * Value);
1964 
1968 LBMSDMExpDLL int lbmsdm_msg_get_int32_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int32_t * Value);
1969 
1973 LBMSDMExpDLL int lbmsdm_msg_get_uint32_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint32_t * Value);
1974 
1978 LBMSDMExpDLL int lbmsdm_msg_get_int64_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int64_t * Value);
1979 
1983 LBMSDMExpDLL int lbmsdm_msg_get_uint64_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint64_t * Value);
1984 
1988 LBMSDMExpDLL int lbmsdm_msg_get_float_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, float * Value);
1989 
1993 LBMSDMExpDLL int lbmsdm_msg_get_double_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, double * Value);
1994 
1998 LBMSDMExpDLL int lbmsdm_msg_get_decimal_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, lbmsdm_decimal_t * Value);
1999 
2003 LBMSDMExpDLL int lbmsdm_msg_get_timestamp_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, struct timeval * Value);
2004 
2008 LBMSDMExpDLL int lbmsdm_msg_get_message_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, lbmsdm_msg_t * * Value);
2009 
2025 LBMSDMExpDLL int lbmsdm_msg_get_string_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, char * Value, size_t * Size);
2026 
2040 LBMSDMExpDLL int lbmsdm_msg_get_unicode_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, wchar_t * Value, size_t * Size);
2041 
2055 LBMSDMExpDLL int lbmsdm_msg_get_blob_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, void * Value, size_t * Size);
2056 
2069 LBMSDMExpDLL int lbmsdm_msg_get_boolean_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint8_t * Value);
2070 
2074 LBMSDMExpDLL int lbmsdm_msg_get_int8_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int8_t * Value);
2075 
2079 LBMSDMExpDLL int lbmsdm_msg_get_uint8_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint8_t * Value);
2080 
2084 LBMSDMExpDLL int lbmsdm_msg_get_int16_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int16_t * Value);
2085 
2089 LBMSDMExpDLL int lbmsdm_msg_get_uint16_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint16_t * Value);
2090 
2094 LBMSDMExpDLL int lbmsdm_msg_get_int32_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int32_t * Value);
2095 
2099 LBMSDMExpDLL int lbmsdm_msg_get_uint32_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint32_t * Value);
2100 
2104 LBMSDMExpDLL int lbmsdm_msg_get_int64_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int64_t * Value);
2105 
2109 LBMSDMExpDLL int lbmsdm_msg_get_uint64_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint64_t * Value);
2110 
2114 LBMSDMExpDLL int lbmsdm_msg_get_float_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, float * Value);
2115 
2119 LBMSDMExpDLL int lbmsdm_msg_get_double_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, double * Value);
2120 
2124 LBMSDMExpDLL int lbmsdm_msg_get_decimal_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, lbmsdm_decimal_t * Value);
2125 
2129 LBMSDMExpDLL int lbmsdm_msg_get_timestamp_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, struct timeval * Value);
2130 
2134 LBMSDMExpDLL int lbmsdm_msg_get_message_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, lbmsdm_msg_t * * Value);
2135 
2151 LBMSDMExpDLL int lbmsdm_msg_get_string_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, char * Value, size_t * Size);
2152 
2166 LBMSDMExpDLL int lbmsdm_msg_get_unicode_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, wchar_t * Value, size_t * Size);
2167 
2181 LBMSDMExpDLL int lbmsdm_msg_get_blob_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, void * Value, size_t * Size);
2182 
2183 
2195 LBMSDMExpDLL int lbmsdm_iter_get_boolean_elem(lbmsdm_iter_t * Iterator, size_t Element, uint8_t * Value);
2196 
2200 LBMSDMExpDLL int lbmsdm_iter_get_int8_elem(lbmsdm_iter_t * Iterator, size_t Element, int8_t * Value);
2201 
2205 LBMSDMExpDLL int lbmsdm_iter_get_uint8_elem(lbmsdm_iter_t * Iterator, size_t Element, uint8_t * Value);
2206 
2210 LBMSDMExpDLL int lbmsdm_iter_get_int16_elem(lbmsdm_iter_t * Iterator, size_t Element, int16_t * Value);
2211 
2215 LBMSDMExpDLL int lbmsdm_iter_get_uint16_elem(lbmsdm_iter_t * Iterator, size_t Element, uint16_t * Value);
2216 
2220 LBMSDMExpDLL int lbmsdm_iter_get_int32_elem(lbmsdm_iter_t * Iterator, size_t Element, int32_t * Value);
2221 
2225 LBMSDMExpDLL int lbmsdm_iter_get_uint32_elem(lbmsdm_iter_t * Iterator, size_t Element, uint32_t * Value);
2226 
2230 LBMSDMExpDLL int lbmsdm_iter_get_int64_elem(lbmsdm_iter_t * Iterator, size_t Element, int64_t * Value);
2231 
2235 LBMSDMExpDLL int lbmsdm_iter_get_uint64_elem(lbmsdm_iter_t * Iterator, size_t Element, uint64_t * Value);
2236 
2240 LBMSDMExpDLL int lbmsdm_iter_get_float_elem(lbmsdm_iter_t * Iterator, size_t Element, float * Value);
2241 
2245 LBMSDMExpDLL int lbmsdm_iter_get_double_elem(lbmsdm_iter_t * Iterator, size_t Element, double * Value);
2246 
2250 LBMSDMExpDLL int lbmsdm_iter_get_decimal_elem(lbmsdm_iter_t * Iterator, size_t Element, lbmsdm_decimal_t * Value);
2251 
2255 LBMSDMExpDLL int lbmsdm_iter_get_timestamp_elem(lbmsdm_iter_t * Iterator, size_t Element, struct timeval * Value);
2256 
2260 LBMSDMExpDLL int lbmsdm_iter_get_message_elem(lbmsdm_iter_t * Iterator, size_t Element, lbmsdm_msg_t * * Value);
2261 
2276 LBMSDMExpDLL int lbmsdm_iter_get_string_elem(lbmsdm_iter_t * Iterator, size_t Element, char * Value, size_t * Size);
2277 
2290 LBMSDMExpDLL int lbmsdm_iter_get_unicode_elem(lbmsdm_iter_t * Iterator, size_t Element, wchar_t * Value, size_t * Size);
2291 
2304 LBMSDMExpDLL int lbmsdm_iter_get_blob_elem(lbmsdm_iter_t * Iterator, size_t Element, void * Value, size_t * Size);
2305 
2311 LBMSDMExpDLL int lbmsdm_msg_set_null_name(lbmsdm_msg_t * Message, const char * Name);
2312 
2318 LBMSDMExpDLL int lbmsdm_msg_set_null_idx(lbmsdm_msg_t * Message, size_t Index);
2319 
2324 LBMSDMExpDLL int lbmsdm_iter_set_null(lbmsdm_iter_t * Iterator);
2325 
2326 
2339 LBMSDMExpDLL int lbmsdm_msg_set_boolean_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t Value);
2340 
2344 LBMSDMExpDLL int lbmsdm_msg_set_int8_idx(lbmsdm_msg_t * Message, size_t Index, int8_t Value);
2345 
2349 LBMSDMExpDLL int lbmsdm_msg_set_uint8_idx(lbmsdm_msg_t * Message, size_t Index, uint8_t Value);
2350 
2354 LBMSDMExpDLL int lbmsdm_msg_set_int16_idx(lbmsdm_msg_t * Message, size_t Index, int16_t Value);
2355 
2359 LBMSDMExpDLL int lbmsdm_msg_set_uint16_idx(lbmsdm_msg_t * Message, size_t Index, uint16_t Value);
2360 
2364 LBMSDMExpDLL int lbmsdm_msg_set_int32_idx(lbmsdm_msg_t * Message, size_t Index, int32_t Value);
2365 
2369 LBMSDMExpDLL int lbmsdm_msg_set_uint32_idx(lbmsdm_msg_t * Message, size_t Index, uint32_t Value);
2370 
2374 LBMSDMExpDLL int lbmsdm_msg_set_int64_idx(lbmsdm_msg_t * Message, size_t Index, int64_t Value);
2375 
2379 LBMSDMExpDLL int lbmsdm_msg_set_uint64_idx(lbmsdm_msg_t * Message, size_t Index, uint64_t Value);
2380 
2384 LBMSDMExpDLL int lbmsdm_msg_set_float_idx(lbmsdm_msg_t * Message, size_t Index, float Value);
2385 
2389 LBMSDMExpDLL int lbmsdm_msg_set_double_idx(lbmsdm_msg_t * Message, size_t Index, double Value);
2390 
2394 LBMSDMExpDLL int lbmsdm_msg_set_decimal_idx(lbmsdm_msg_t * Message, size_t Index, const lbmsdm_decimal_t * Value);
2395 
2399 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_idx(lbmsdm_msg_t * Message, size_t Index, const struct timeval * Value);
2400 
2404 LBMSDMExpDLL int lbmsdm_msg_set_message_idx(lbmsdm_msg_t * Message, size_t Index, const lbmsdm_msg_t * Value);
2405 
2409 LBMSDMExpDLL int lbmsdm_msg_set_string_idx(lbmsdm_msg_t * Message, size_t Index, const char * Value);
2410 
2419 LBMSDMExpDLL int lbmsdm_msg_set_unicode_idx(lbmsdm_msg_t * Message, size_t Index, const wchar_t * Value, size_t Length);
2420 
2429 LBMSDMExpDLL int lbmsdm_msg_set_blob_idx(lbmsdm_msg_t * Message, size_t Index, const void * Value, size_t Length);
2430 
2443 LBMSDMExpDLL int lbmsdm_msg_set_boolean_name(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
2444 
2448 LBMSDMExpDLL int lbmsdm_msg_set_int8_name(lbmsdm_msg_t * Message, const char * Name, int8_t Value);
2449 
2453 LBMSDMExpDLL int lbmsdm_msg_set_uint8_name(lbmsdm_msg_t * Message, const char * Name, uint8_t Value);
2454 
2458 LBMSDMExpDLL int lbmsdm_msg_set_int16_name(lbmsdm_msg_t * Message, const char * Name, int16_t Value);
2459 
2463 LBMSDMExpDLL int lbmsdm_msg_set_uint16_name(lbmsdm_msg_t * Message, const char * Name, uint16_t Value);
2464 
2468 LBMSDMExpDLL int lbmsdm_msg_set_int32_name(lbmsdm_msg_t * Message, const char * Name, int32_t Value);
2469 
2473 LBMSDMExpDLL int lbmsdm_msg_set_uint32_name(lbmsdm_msg_t * Message, const char * Name, uint32_t Value);
2474 
2478 LBMSDMExpDLL int lbmsdm_msg_set_int64_name(lbmsdm_msg_t * Message, const char * Name, int64_t Value);
2479 
2483 LBMSDMExpDLL int lbmsdm_msg_set_uint64_name(lbmsdm_msg_t * Message, const char * Name, uint64_t Value);
2484 
2488 LBMSDMExpDLL int lbmsdm_msg_set_float_name(lbmsdm_msg_t * Message, const char * Name, float Value);
2489 
2493 LBMSDMExpDLL int lbmsdm_msg_set_double_name(lbmsdm_msg_t * Message, const char * Name, double Value);
2494 
2498 LBMSDMExpDLL int lbmsdm_msg_set_decimal_name(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_decimal_t * Value);
2499 
2503 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_name(lbmsdm_msg_t * Message, const char * Name, const struct timeval * Value);
2504 
2508 LBMSDMExpDLL int lbmsdm_msg_set_message_name(lbmsdm_msg_t * Message, const char * Name, const lbmsdm_msg_t * Value);
2509 
2513 LBMSDMExpDLL int lbmsdm_msg_set_string_name(lbmsdm_msg_t * Message, const char * Name, const char * Value);
2514 
2523 LBMSDMExpDLL int lbmsdm_msg_set_unicode_name(lbmsdm_msg_t * Message, const char * Name, const wchar_t * Value, size_t Length);
2524 
2533 LBMSDMExpDLL int lbmsdm_msg_set_blob_name(lbmsdm_msg_t * Message, const char * Name, const void * Value, size_t Length);
2534 
2546 LBMSDMExpDLL int lbmsdm_iter_set_boolean(lbmsdm_iter_t * Iterator, uint8_t Value);
2547 
2551 LBMSDMExpDLL int lbmsdm_iter_set_int8(lbmsdm_iter_t * Iterator, int8_t Value);
2552 
2556 LBMSDMExpDLL int lbmsdm_iter_set_uint8(lbmsdm_iter_t * Iterator, uint8_t Value);
2557 
2561 LBMSDMExpDLL int lbmsdm_iter_set_int16(lbmsdm_iter_t * Iterator, int16_t Value);
2562 
2566 LBMSDMExpDLL int lbmsdm_iter_set_uint16(lbmsdm_iter_t * Iterator, uint16_t Value);
2567 
2571 LBMSDMExpDLL int lbmsdm_iter_set_int32(lbmsdm_iter_t * Iterator, int32_t Value);
2572 
2576 LBMSDMExpDLL int lbmsdm_iter_set_uint32(lbmsdm_iter_t * Iterator, uint32_t Value);
2577 
2581 LBMSDMExpDLL int lbmsdm_iter_set_int64(lbmsdm_iter_t * Iterator, int64_t Value);
2582 
2586 LBMSDMExpDLL int lbmsdm_iter_set_uint64(lbmsdm_iter_t * Iterator, uint64_t Value);
2587 
2591 LBMSDMExpDLL int lbmsdm_iter_set_float(lbmsdm_iter_t * Iterator, float Value);
2592 
2596 LBMSDMExpDLL int lbmsdm_iter_set_double(lbmsdm_iter_t * Iterator, double Value);
2597 
2601 LBMSDMExpDLL int lbmsdm_iter_set_decimal(lbmsdm_iter_t * Iterator, const lbmsdm_decimal_t * Value);
2602 
2606 LBMSDMExpDLL int lbmsdm_iter_set_timestamp(lbmsdm_iter_t * Iterator, const struct timeval * Value);
2607 
2611 LBMSDMExpDLL int lbmsdm_iter_set_message(lbmsdm_iter_t * Iterator, const lbmsdm_msg_t * Value);
2612 
2616 LBMSDMExpDLL int lbmsdm_iter_set_string(lbmsdm_iter_t * Iterator, const char * Value);
2617 
2625 LBMSDMExpDLL int lbmsdm_iter_set_unicode(lbmsdm_iter_t * Iterator, const wchar_t * Value, size_t Length);
2626 
2634 LBMSDMExpDLL int lbmsdm_iter_set_blob(lbmsdm_iter_t * Iterator, const void * Value, size_t Length);
2635 
2646 LBMSDMExpDLL int lbmsdm_msg_set_boolean_array_idx(lbmsdm_msg_t * Message, size_t Index);
2647 
2651 LBMSDMExpDLL int lbmsdm_msg_set_int8_array_idx(lbmsdm_msg_t * Message, size_t Index);
2652 
2656 LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_idx(lbmsdm_msg_t * Message, size_t Index);
2657 
2661 LBMSDMExpDLL int lbmsdm_msg_set_int16_array_idx(lbmsdm_msg_t * Message, size_t Index);
2662 
2666 LBMSDMExpDLL int lbmsdm_msg_set_uint16_array_idx(lbmsdm_msg_t * Message, size_t Index);
2667 
2671 LBMSDMExpDLL int lbmsdm_msg_set_int32_array_idx(lbmsdm_msg_t * Message, size_t Index);
2672 
2676 LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_idx(lbmsdm_msg_t * Message, size_t Index);
2677 
2681 LBMSDMExpDLL int lbmsdm_msg_set_int64_array_idx(lbmsdm_msg_t * Message, size_t Index);
2682 
2686 LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_idx(lbmsdm_msg_t * Message, size_t Index);
2687 
2691 LBMSDMExpDLL int lbmsdm_msg_set_float_array_idx(lbmsdm_msg_t * Message, size_t Index);
2692 
2696 LBMSDMExpDLL int lbmsdm_msg_set_double_array_idx(lbmsdm_msg_t * Message, size_t Index);
2697 
2701 LBMSDMExpDLL int lbmsdm_msg_set_decimal_array_idx(lbmsdm_msg_t * Message, size_t Index);
2702 
2706 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_idx(lbmsdm_msg_t * Message, size_t Index);
2707 
2711 LBMSDMExpDLL int lbmsdm_msg_set_message_array_idx(lbmsdm_msg_t * Message, size_t Index);
2712 
2716 LBMSDMExpDLL int lbmsdm_msg_set_string_array_idx(lbmsdm_msg_t * Message, size_t Index);
2717 
2721 LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_idx(lbmsdm_msg_t * Message, size_t Index);
2722 
2726 LBMSDMExpDLL int lbmsdm_msg_set_blob_array_idx(lbmsdm_msg_t * Message, size_t Index);
2727 
2738 LBMSDMExpDLL int lbmsdm_msg_set_boolean_array_name(lbmsdm_msg_t * Message, const char * Name);
2739 
2743 LBMSDMExpDLL int lbmsdm_msg_set_int8_array_name(lbmsdm_msg_t * Message, const char * Name);
2744 
2748 LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_name(lbmsdm_msg_t * Message, const char * Name);
2749 
2753 LBMSDMExpDLL int lbmsdm_msg_set_int16_array_name(lbmsdm_msg_t * Message, const char * Name);
2754 
2758 LBMSDMExpDLL int lbmsdm_msg_set_uint16_array_name(lbmsdm_msg_t * Message, const char * Name);
2759 
2763 LBMSDMExpDLL int lbmsdm_msg_set_int32_array_name(lbmsdm_msg_t * Message, const char * Name);
2764 
2768 LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_name(lbmsdm_msg_t * Message, const char * Name);
2769 
2773 LBMSDMExpDLL int lbmsdm_msg_set_int64_array_name(lbmsdm_msg_t * Message, const char * Name);
2774 
2778 LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_name(lbmsdm_msg_t * Message, const char * Name);
2779 
2783 LBMSDMExpDLL int lbmsdm_msg_set_float_array_name(lbmsdm_msg_t * Message, const char * Name);
2784 
2788 LBMSDMExpDLL int lbmsdm_msg_set_double_array_name(lbmsdm_msg_t * Message, const char * Name);
2789 
2793 LBMSDMExpDLL int lbmsdm_msg_set_decimal_array_name(lbmsdm_msg_t * Message, const char * Name);
2794 
2798 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_name(lbmsdm_msg_t * Message, const char * Name);
2799 
2803 LBMSDMExpDLL int lbmsdm_msg_set_message_array_name(lbmsdm_msg_t * Message, const char * Name);
2804 
2808 LBMSDMExpDLL int lbmsdm_msg_set_string_array_name(lbmsdm_msg_t * Message, const char * Name);
2809 
2813 LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_name(lbmsdm_msg_t * Message, const char * Name);
2814 
2818 LBMSDMExpDLL int lbmsdm_msg_set_blob_array_name(lbmsdm_msg_t * Message, const char * Name);
2819 
2829 LBMSDMExpDLL int lbmsdm_iter_set_boolean_array(lbmsdm_iter_t * Iterator);
2830 
2834 LBMSDMExpDLL int lbmsdm_iter_set_int8_array(lbmsdm_iter_t * Iterator);
2835 
2839 LBMSDMExpDLL int lbmsdm_iter_set_uint8_array(lbmsdm_iter_t * Iterator);
2840 
2844 LBMSDMExpDLL int lbmsdm_iter_set_int16_array(lbmsdm_iter_t * Iterator);
2845 
2849 LBMSDMExpDLL int lbmsdm_iter_set_uint16_array(lbmsdm_iter_t * Iterator);
2850 
2854 LBMSDMExpDLL int lbmsdm_iter_set_int32_array(lbmsdm_iter_t * Iterator);
2855 
2859 LBMSDMExpDLL int lbmsdm_iter_set_uint32_array(lbmsdm_iter_t * Iterator);
2860 
2864 LBMSDMExpDLL int lbmsdm_iter_set_int64_array(lbmsdm_iter_t * Iterator);
2865 
2869 LBMSDMExpDLL int lbmsdm_iter_set_uint64_array(lbmsdm_iter_t * Iterator);
2870 
2874 LBMSDMExpDLL int lbmsdm_iter_set_float_array(lbmsdm_iter_t * Iterator);
2875 
2879 LBMSDMExpDLL int lbmsdm_iter_set_double_array(lbmsdm_iter_t * Iterator);
2880 
2884 LBMSDMExpDLL int lbmsdm_iter_set_decimal_array(lbmsdm_iter_t * Iterator);
2885 
2889 LBMSDMExpDLL int lbmsdm_iter_set_timestamp_array(lbmsdm_iter_t * Iterator);
2890 
2894 LBMSDMExpDLL int lbmsdm_iter_set_message_array(lbmsdm_iter_t * Iterator);
2895 
2899 LBMSDMExpDLL int lbmsdm_iter_set_string_array(lbmsdm_iter_t * Iterator);
2900 
2904 LBMSDMExpDLL int lbmsdm_iter_set_unicode_array(lbmsdm_iter_t * Iterator);
2905 
2909 LBMSDMExpDLL int lbmsdm_iter_set_blob_array(lbmsdm_iter_t * Iterator);
2910 
2923 LBMSDMExpDLL int lbmsdm_msg_set_boolean_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint8_t Value);
2924 
2928 LBMSDMExpDLL int lbmsdm_msg_set_int8_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int8_t Value);
2929 
2933 LBMSDMExpDLL int lbmsdm_msg_set_uint8_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint8_t Value);
2934 
2938 LBMSDMExpDLL int lbmsdm_msg_set_int16_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int16_t Value);
2939 
2943 LBMSDMExpDLL int lbmsdm_msg_set_uint16_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint16_t Value);
2944 
2948 LBMSDMExpDLL int lbmsdm_msg_set_int32_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int32_t Value);
2949 
2953 LBMSDMExpDLL int lbmsdm_msg_set_uint32_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint32_t Value);
2954 
2958 LBMSDMExpDLL int lbmsdm_msg_set_int64_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, int64_t Value);
2959 
2963 LBMSDMExpDLL int lbmsdm_msg_set_uint64_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, uint64_t Value);
2964 
2968 LBMSDMExpDLL int lbmsdm_msg_set_float_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, float Value);
2969 
2973 LBMSDMExpDLL int lbmsdm_msg_set_double_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, double Value);
2974 
2978 LBMSDMExpDLL int lbmsdm_msg_set_decimal_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, const lbmsdm_decimal_t * Value);
2979 
2983 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, const struct timeval * Value);
2984 
2988 LBMSDMExpDLL int lbmsdm_msg_set_message_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, const lbmsdm_msg_t * Value);
2989 
2993 LBMSDMExpDLL int lbmsdm_msg_set_string_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, const char * Value);
2994 
3004 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);
3005 
3015 LBMSDMExpDLL int lbmsdm_msg_set_blob_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element, const void * Value, size_t Length);
3016 
3029 LBMSDMExpDLL int lbmsdm_msg_set_boolean_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint8_t Value);
3030 
3034 LBMSDMExpDLL int lbmsdm_msg_set_int8_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int8_t Value);
3035 
3039 LBMSDMExpDLL int lbmsdm_msg_set_uint8_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint8_t Value);
3040 
3044 LBMSDMExpDLL int lbmsdm_msg_set_int16_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int16_t Value);
3045 
3049 LBMSDMExpDLL int lbmsdm_msg_set_uint16_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint16_t Value);
3050 
3054 LBMSDMExpDLL int lbmsdm_msg_set_int32_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int32_t Value);
3055 
3059 LBMSDMExpDLL int lbmsdm_msg_set_uint32_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint32_t Value);
3060 
3064 LBMSDMExpDLL int lbmsdm_msg_set_int64_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, int64_t Value);
3065 
3069 LBMSDMExpDLL int lbmsdm_msg_set_uint64_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, uint64_t Value);
3070 
3074 LBMSDMExpDLL int lbmsdm_msg_set_float_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, float Value);
3075 
3079 LBMSDMExpDLL int lbmsdm_msg_set_double_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, double Value);
3080 
3084 LBMSDMExpDLL int lbmsdm_msg_set_decimal_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, const lbmsdm_decimal_t * Value);
3085 
3089 LBMSDMExpDLL int lbmsdm_msg_set_timestamp_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, const struct timeval * Value);
3090 
3094 LBMSDMExpDLL int lbmsdm_msg_set_message_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, const lbmsdm_msg_t * Value);
3095 
3099 LBMSDMExpDLL int lbmsdm_msg_set_string_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, const char * Value);
3100 
3110 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);
3111 
3121 LBMSDMExpDLL int lbmsdm_msg_set_blob_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element, const void * Value, size_t Length);
3122 
3134 LBMSDMExpDLL int lbmsdm_iter_set_boolean_elem(lbmsdm_iter_t * Iterator, size_t Element, uint8_t Value);
3135 
3139 LBMSDMExpDLL int lbmsdm_iter_set_int8_elem(lbmsdm_iter_t * Iterator, size_t Element, int8_t Value);
3140 
3144 LBMSDMExpDLL int lbmsdm_iter_set_uint8_elem(lbmsdm_iter_t * Iterator, size_t Element, uint8_t Value);
3145 
3149 LBMSDMExpDLL int lbmsdm_iter_set_int16_elem(lbmsdm_iter_t * Iterator, size_t Element, int16_t Value);
3150 
3154 LBMSDMExpDLL int lbmsdm_iter_set_uint16_elem(lbmsdm_iter_t * Iterator, size_t Element, uint16_t Value);
3155 
3159 LBMSDMExpDLL int lbmsdm_iter_set_int32_elem(lbmsdm_iter_t * Iterator, size_t Element, int32_t Value);
3160 
3164 LBMSDMExpDLL int lbmsdm_iter_set_uint32_elem(lbmsdm_iter_t * Iterator, size_t Element, uint32_t Value);
3165 
3169 LBMSDMExpDLL int lbmsdm_iter_set_int64_elem(lbmsdm_iter_t * Iterator, size_t Element, int64_t Value);
3170 
3174 LBMSDMExpDLL int lbmsdm_iter_set_uint64_elem(lbmsdm_iter_t * Iterator, size_t Element, uint64_t Value);
3175 
3179 LBMSDMExpDLL int lbmsdm_iter_set_float_elem(lbmsdm_iter_t * Iterator, size_t Element, float Value);
3180 
3184 LBMSDMExpDLL int lbmsdm_iter_set_double_elem(lbmsdm_iter_t * Iterator, size_t Element, double Value);
3185 
3189 LBMSDMExpDLL int lbmsdm_iter_set_decimal_elem(lbmsdm_iter_t * Iterator, size_t Element, const lbmsdm_decimal_t * Value);
3190 
3194 LBMSDMExpDLL int lbmsdm_iter_set_timestamp_elem(lbmsdm_iter_t * Iterator, size_t Element, const struct timeval * Value);
3195 
3199 LBMSDMExpDLL int lbmsdm_iter_set_message_elem(lbmsdm_iter_t * Iterator, size_t Element, const lbmsdm_msg_t * Value);
3200 
3204 LBMSDMExpDLL int lbmsdm_iter_set_string_elem(lbmsdm_iter_t * Iterator, size_t Element, const char * Value);
3205 
3214 LBMSDMExpDLL int lbmsdm_iter_set_unicode_elem(lbmsdm_iter_t * Iterator, size_t Element, const wchar_t * Value, size_t Length);
3215 
3224 LBMSDMExpDLL int lbmsdm_iter_set_blob_elem(lbmsdm_iter_t * Iterator, size_t Element, const void * Value, size_t Length);
3225 
3231 LBMSDMExpDLL int lbmsdm_msg_del_idx(lbmsdm_msg_t * Message, size_t Index);
3232 
3238 LBMSDMExpDLL int lbmsdm_msg_del_name(lbmsdm_msg_t * Message, const char * Name);
3239 
3244 LBMSDMExpDLL int lbmsdm_iter_del(lbmsdm_iter_t * Iterator);
3245 
3252 LBMSDMExpDLL int lbmsdm_msg_del_elem_idx(lbmsdm_msg_t * Message, size_t Index, size_t Element);
3253 
3260 LBMSDMExpDLL int lbmsdm_msg_del_elem_name(lbmsdm_msg_t * Message, const char * Name, size_t Element);
3261 
3267 LBMSDMExpDLL int lbmsdm_iter_del_elem(lbmsdm_iter_t * Iterator, size_t Element);
3268 
3279 LBMSDMExpDLL int lbmsdm_msg_attr_create(lbmsdm_msg_attr_t * * Attributes);
3280 
3289 LBMSDMExpDLL int lbmsdm_msg_attr_delete(lbmsdm_msg_attr_t * Attributes);
3290 
3303 LBMSDMExpDLL int lbmsdm_msg_attr_dup(lbmsdm_msg_attr_t * * Attributes, lbmsdm_msg_attr_t * Original);
3304 
3318 LBMSDMExpDLL int lbmsdm_msg_attr_setopt(lbmsdm_msg_attr_t * Attributes, const char * Option, void * Value, size_t Length);
3319 
3332 LBMSDMExpDLL int lbmsdm_msg_attr_str_setopt(lbmsdm_msg_attr_t * Attributes, const char * Option, const char * Value);
3333 
3344 LBMSDMExpDLL int lbmsdm_msg_attr_getopt(lbmsdm_msg_attr_t * Attributes, const char * Option, void * Value, size_t * Length);
3345 
3355 LBMSDMExpDLL int lbmsdm_msg_attr_str_getopt(lbmsdm_msg_attr_t * Attributes, const char * Option, char * Value, size_t * Length);
3356 
3357 #if defined(__cplusplus)
3358 }
3359 #endif
3360 
3361 #endif
3362 
LBMSDMExpDLL int lbmsdm_iter_get_boolean(lbmsdm_iter_t *Iterator, uint8_t *Value)
Fetch a field value from the field referenced by an iterator.
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.
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_iter_add_message_elem(lbmsdm_iter_t *Iterator, const lbmsdm_msg_t *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_set_int32_array_name(lbmsdm_msg_t *Message, const char *Name)
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.
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_name(lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
LBMSDMExpDLL int lbmsdm_msg_add_int32(lbmsdm_msg_t *Message, const char *Name, int32_t Value)
LBMSDMExpDLL int lbmsdm_msg_add_decimal_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_add_message_array(lbmsdm_msg_t *Message, const char *Name)
Definition: lbmsdm.h:712
LBMSDMExpDLL int lbmsdm_msg_add_uint64(lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_len(lbmsdm_iter_t *Iterator)
Get the length (in bytes) required for the current field for an iterator.
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_idx(lbmsdm_msg_t *Message, size_t Index)
Definition: lbmsdm.h:716
LBMSDMExpDLL int lbmsdm_iter_get_int8(lbmsdm_iter_t *Iterator, int8_t *Value)
LBMSDMExpDLL int lbmsdm_iter_set_decimal(lbmsdm_iter_t *Iterator, const lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_blob_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_iter_get_int64_elem(lbmsdm_iter_t *Iterator, size_t Element, int64_t *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_int8_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, int8_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.
LBMSDMExpDLL int lbmsdm_iter_set_blob_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_set_uint16_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint16_t Value)
Definition: lbmsdm.h:638
LBMSDMExpDLL int lbmsdm_msg_get_int64_idx(lbmsdm_msg_t *Message, size_t Index, int64_t *Value)
Definition: lbmsdm.h:728
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.
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.
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.
LBMSDMExpDLL int lbmsdm_msg_add_message(lbmsdm_msg_t *Message, const char *Name, const lbmsdm_msg_t *Value)
Definition: lbmsdm.h:622
LBMSDMExpDLL int lbmsdm_msg_set_int8_name(lbmsdm_msg_t *Message, const char *Name, int8_t Value)
Definition: lbmsdm.h:742
LBMSDMExpDLL int lbmsdm_msg_set_string_array_idx(lbmsdm_msg_t *Message, size_t Index)
Definition: lbmsdm.h:744
Definition: lbmsdm.h:726
LBMSDMExpDLL int lbmsdm_iter_set_decimal_elem(lbmsdm_iter_t *Iterator, size_t Element, const lbmsdm_decimal_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_idx(lbmsdm_msg_t *Message, size_t Index, uint32_t Value)
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.
LBMSDMExpDLL int lbmsdm_msg_get_float_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, float *Value)
LBMSDMExpDLL int lbmsdm_msg_add_int16_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_iter_add_double_elem(lbmsdm_iter_t *Iterator, double Value)
LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_name(lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint16_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_int8_idx(lbmsdm_msg_t *Message, size_t Index, int8_t Value)
LBMSDMExpDLL int lbmsdm_msg_get_message_idx(lbmsdm_msg_t *Message, size_t Index, lbmsdm_msg_t **Value)
LBMSDMExpDLL int lbmsdm_iter_set_message(lbmsdm_iter_t *Iterator, const lbmsdm_msg_t *Value)
LBMSDMExpDLL int lbmsdm_msg_add_int8_elem_idx(lbmsdm_msg_t *Message, size_t Index, int8_t Value)
Definition: lbmsdm.h:632
LBMSDMExpDLL int lbmsdm_iter_add_uint8_elem(lbmsdm_iter_t *Iterator, uint8_t 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_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.
LBMSDMExpDLL int lbmsdm_msg_get_int32_name(lbmsdm_msg_t *Message, const char *Name, int32_t *Value)
LBMSDMExpDLL const char * lbmsdm_errmsg(void)
Return an ASCII string containing the error message last encountered by this thread.
LBMSDMExpDLL int lbmsdm_msg_set_double_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL lbmsdm_field_type_t lbmsdm_iter_get_type(lbmsdm_iter_t *Iterator)
Get the type of the current field for an iterator.
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.
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.
LBMSDMExpDLL int lbmsdm_msg_create(lbmsdm_msg_t **Message)
Create an SDM message to be filled in and sent.
LBMSDMExpDLL int lbmsdm_msg_get_int16_idx(lbmsdm_msg_t *Message, size_t Index, int16_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_double_idx(lbmsdm_msg_t *Message, size_t Index, double Value)
Definition: lbmsdm.h:624
LBMSDMExpDLL int lbmsdm_iter_get_uint8_elem(lbmsdm_iter_t *Iterator, size_t Element, uint8_t *Value)
LBMSDMExpDLL int lbmsdm_msg_add_float(lbmsdm_msg_t *Message, const char *Name, float Value)
LBMSDMExpDLL int lbmsdm_iter_set_timestamp_elem(lbmsdm_iter_t *Iterator, size_t Element, const struct timeval *Value)
LBMSDMExpDLL int lbmsdm_iter_set_timestamp_array(lbmsdm_iter_t *Iterator)
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.
LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_iter_set_boolean(lbmsdm_iter_t *Iterator, uint8_t Value)
Set a field value in the field referenced by an iterator.
LBMSDMExpDLL int lbmsdm_msg_add_double_array(lbmsdm_msg_t *Message, const char *Name)
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.
LBMSDMExpDLL int lbmsdm_msg_get_decimal_idx(lbmsdm_msg_t *Message, size_t Index, lbmsdm_decimal_t *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.
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.
LBMSDMExpDLL int lbmsdm_msg_add_uint32(lbmsdm_msg_t *Message, const char *Name, uint32_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_null(lbmsdm_iter_t *Iterator)
Set the field referenced by an iterator to null.
LBMSDMExpDLL int lbmsdm_msg_set_int64_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_add_int8(lbmsdm_msg_t *Message, const char *Name, int8_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_message_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, struct timeval *Value)
Definition: lbmsdm.h:718
LBMSDMExpDLL int lbmsdm_msg_set_int8_array_idx(lbmsdm_msg_t *Message, size_t Index)
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_add_string_elem_idx(lbmsdm_msg_t *Message, size_t Index, const char *Value)
Definition: lbmsdm.h:656
LBMSDMExpDLL int lbmsdm_msg_get_uint64_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint64_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_int32_elem(lbmsdm_iter_t *Iterator, size_t Element, int32_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_add_uint8_elem_idx(lbmsdm_msg_t *Message, size_t Index, uint8_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_string_elem(lbmsdm_iter_t *Iterator, size_t Element, const char *Value)
LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_name(lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_int16_elem(lbmsdm_iter_t *Iterator, size_t Element, int16_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint32_name(lbmsdm_msg_t *Message, const char *Name, uint32_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_idx(lbmsdm_msg_t *Message, size_t Index)
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.
Structure to hold a scaled decimal number. A scaled decimal number consists of a mantissa and an exp...
Definition: lbmsdm.h:755
LBMSDMExpDLL int lbmsdm_iter_set_int32_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_add_uint8(lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
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.
LBMSDMExpDLL int lbmsdm_iter_set_int8(lbmsdm_iter_t *Iterator, int8_t Value)
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.
LBMSDMExpDLL int lbmsdm_iter_destroy(lbmsdm_iter_t *Iterator)
Destroy an SDM message iterator.
LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_name(lbmsdm_msg_t *Message, const char *Name, int16_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_uint8(lbmsdm_iter_t *Iterator, uint8_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint16(lbmsdm_iter_t *Iterator, uint16_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_int16_elem(lbmsdm_iter_t *Iterator, size_t Element, int16_t *Value)
Definition: lbmsdm.h:732
LBMSDMExpDLL int lbmsdm_iter_set_int16_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_iter_set_int32_elem(lbmsdm_iter_t *Iterator, size_t Element, int32_t Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_blob_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_clear(lbmsdm_msg_t *Message)
Clear an SDM message, deleting all fields in the message.
Definition: lbmsdm.h:628
LBMSDMExpDLL int lbmsdm_iter_get_message(lbmsdm_iter_t *Iterator, lbmsdm_msg_t **Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint32(lbmsdm_iter_t *Iterator, uint32_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_add_blob_array(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_get_uint16_name(lbmsdm_msg_t *Message, const char *Name, uint16_t *Value)
LBMSDMExpDLL int lbmsdm_msg_get_int16_name(lbmsdm_msg_t *Message, const char *Name, int16_t *Value)
LBMSDMExpDLL int lbmsdm_msg_get_uint64_idx(lbmsdm_msg_t *Message, size_t Index, uint64_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_timestamp(lbmsdm_iter_t *Iterator, struct timeval *Value)
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.
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.
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.
LBMSDMExpDLL int lbmsdm_msg_add_uint32_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_iter_add_int64_elem(lbmsdm_iter_t *Iterator, int64_t Value)
struct lbmsdm_msg_attr_t_stct lbmsdm_msg_attr_t
Message attributes object for SDM (opaque).
Definition: lbmsdm.h:594
LBMSDMExpDLL int lbmsdm_iter_set_uint16_elem(lbmsdm_iter_t *Iterator, size_t Element, uint16_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_int32(lbmsdm_iter_t *Iterator, int32_t Value)
Definition: lbmsdm.h:630
int64_t mant
Definition: lbmsdm.h:758
LBMSDMExpDLL int lbmsdm_iter_set_double_elem(lbmsdm_iter_t *Iterator, size_t Element, double Value)
Definition: lbmsdm.h:650
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_idx(lbmsdm_msg_t *Message, size_t Index, struct timeval *Value)
Definition: lbmsdm.h:640
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_get_uint8_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, uint8_t *Value)
Definition: lbmsdm.h:662
LBMSDMExpDLL int lbmsdm_iter_get_uint8(lbmsdm_iter_t *Iterator, uint8_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_string_array_name(lbmsdm_msg_t *Message, const char *Name)
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.
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.
LBMSDMExpDLL int lbmsdm_iter_add_float_elem(lbmsdm_iter_t *Iterator, float Value)
LBMSDMExpDLL int lbmsdm_msg_get_int64_name(lbmsdm_msg_t *Message, const char *Name, int64_t *Value)
Definition: lbmsdm.h:678
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_add_int8_elem_name(lbmsdm_msg_t *Message, const char *Name, int8_t Value)
struct lbmsdm_iter_t_stct lbmsdm_iter_t
Message iterator object for SDM (opaque).
Definition: lbmsdm.h:608
LBMSDMExpDLL int lbmsdm_msg_set_int64_name(lbmsdm_msg_t *Message, const char *Name, int64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_unicode_array(lbmsdm_iter_t *Iterator)
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_get_int16_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, int16_t *Value)
LBMSDMExpDLL int lbmsdm_iter_add_decimal_elem(lbmsdm_iter_t *Iterator, const lbmsdm_decimal_t *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.
LBMSDMExpDLL int lbmsdm_msg_set_decimal_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_set_uint8_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint8_t Value)
Definition: lbmsdm.h:616
Definition: lbmsdm.h:696
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_set_uint16_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_set_float_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_uint16_name(lbmsdm_msg_t *Message, const char *Name, uint16_t Value)
LBMSDMExpDLL int lbmsdm_msg_get_int32_idx(lbmsdm_msg_t *Message, size_t Index, int32_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_float(lbmsdm_iter_t *Iterator, float *Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint16_elem(lbmsdm_iter_t *Iterator, size_t Element, uint16_t *Value)
Definition: lbmsdm.h:618
Definition: lbmsdm.h:680
Definition: lbmsdm.h:714
Definition: lbmsdm.h:740
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_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.
LBMSDMExpDLL int lbmsdm_msg_get_int8_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, int8_t *Value)
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 ...
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.
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.
LBMSDMExpDLL int lbmsdm_iter_get_double(lbmsdm_iter_t *Iterator, double *Value)
LBMSDMExpDLL int lbmsdm_msg_get_message_name(lbmsdm_msg_t *Message, const char *Name, lbmsdm_msg_t **Value)
LBMSDMExpDLL int lbmsdm_msg_get_timestamp_name(lbmsdm_msg_t *Message, const char *Name, struct timeval *Value)
LBMSDMExpDLL int lbmsdm_win32_static_init(void)
Perform required initialization under Windows. This function needs to be called before any other LBM ...
LBMSDMExpDLL int lbmsdm_msg_get_double_idx(lbmsdm_msg_t *Message, size_t Index, double *Value)
LBMSDMExpDLL int lbmsdm_iter_add_uint64_elem(lbmsdm_iter_t *Iterator, uint64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_uint16_array(lbmsdm_iter_t *Iterator)
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_set_int32_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, int32_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint32_elem(lbmsdm_iter_t *Iterator, size_t Element, uint32_t *Value)
uint16_t lbmsdm_field_type_t
Type definition for an SDM field type.
Definition: lbmsdm.h:603
LBMSDMExpDLL int lbmsdm_msg_set_message_idx(lbmsdm_msg_t *Message, size_t Index, const lbmsdm_msg_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_set_double_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_add_timestamp_elem_idx(lbmsdm_msg_t *Message, size_t Index, const struct timeval *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_uint8_idx(lbmsdm_msg_t *Message, size_t Index, uint8_t 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_set_uint64_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint64_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_int64_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_iter_create(lbmsdm_iter_t **Iterator, lbmsdm_msg_t *Message)
Create an SDM message iterator.
LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_idx(lbmsdm_msg_t *Message, size_t Index, const lbmsdm_decimal_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_add_string_elem_name(lbmsdm_msg_t *Message, const char *Name, const char *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_iter_set_uint64_elem(lbmsdm_iter_t *Iterator, size_t Element, uint64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_int64(lbmsdm_iter_t *Iterator, int64_t Value)
Definition: lbmsdm.h:646
LBMSDMExpDLL int lbmsdm_iter_set_uint32_elem(lbmsdm_iter_t *Iterator, size_t Element, uint32_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_iter_get_int32(lbmsdm_iter_t *Iterator, int32_t *Value)
LBMSDMExpDLL int lbmsdm_iter_first(lbmsdm_iter_t *Iterator)
Position an iterator to the first field in the message.
LBMSDMExpDLL int lbmsdm_msg_attr_dup(lbmsdm_msg_attr_t **Attributes, lbmsdm_msg_attr_t *Original)
Duplicate an SDM message attribute object.
LBMSDMExpDLL int lbmsdm_iter_del(lbmsdm_iter_t *Iterator)
Delete a field referenced by an iterator.
LBMSDMExpDLL int lbmsdm_msg_add_float_elem_idx(lbmsdm_msg_t *Message, size_t Index, float Value)
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.
LBMSDMExpDLL int lbmsdm_iter_next(lbmsdm_iter_t *Iterator)
Position an iterator to the next field in the message.
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_decimal_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, lbmsdm_decimal_t *Value)
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...
LBMSDMExpDLL int lbmsdm_msg_set_uint32_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint32_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint64_elem(lbmsdm_iter_t *Iterator, size_t Element, uint64_t *Value)
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.
LBMSDMExpDLL int lbmsdm_iter_set_uint32_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_iter_set_double(lbmsdm_iter_t *Iterator, double Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_int16_name(lbmsdm_msg_t *Message, const char *Name, int16_t Value)
Definition: lbmsdm.h:684
LBMSDMExpDLL int lbmsdm_msg_del_idx(lbmsdm_msg_t *Message, size_t Index)
Delete a field from a message by field index.
struct lbmsdm_msg_t_stct lbmsdm_msg_t
Message object for SDM (opaque).
Definition: lbmsdm.h:599
LBMSDMExpDLL int lbmsdm_msg_set_decimal_idx(lbmsdm_msg_t *Message, size_t Index, const lbmsdm_decimal_t *Value)
Definition: lbmsdm.h:730
LBMSDMExpDLL int lbmsdm_msg_add_int64(lbmsdm_msg_t *Message, const char *Name, int64_t Value)
LBMSDMExpDLL int lbmsdm_msg_attr_create(lbmsdm_msg_attr_t **Attributes)
Create and fill an SDM message attribute object with the default values.
LBMSDMExpDLL int lbmsdm_msg_get_float_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, float *Value)
Definition: lbmsdm.h:658
Definition: lbmsdm.h:710
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.
LBMSDMExpDLL int lbmsdm_iter_add_timestamp_elem(lbmsdm_iter_t *Iterator, const struct timeval *Value)
LBMSDMExpDLL int lbmsdm_msg_get_int8_name(lbmsdm_msg_t *Message, const char *Name, int8_t *Value)
LBMSDMExpDLL int lbmsdm_iter_set_boolean_array(lbmsdm_iter_t *Iterator)
Set a field in a message by field name to an array field.
LBMSDMExpDLL int lbmsdm_msg_add_int16_elem_idx(lbmsdm_msg_t *Message, size_t Index, int16_t Value)
LBMSDMExpDLL int lbmsdm_msg_add_float_array(lbmsdm_msg_t *Message, const char *Name)
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.
Definition: lbmsdm.h:720
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.
LBMSDMExpDLL int lbmsdm_iter_set_float_elem(lbmsdm_iter_t *Iterator, size_t Element, float Value)
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 l...
LBMSDMExpDLL int lbmsdm_iter_set_int8_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_get_message_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, lbmsdm_msg_t **Value)
Definition: lbmsdm.h:674
LBMSDMExpDLL int lbmsdm_msg_set_int64_idx(lbmsdm_msg_t *Message, size_t Index, int64_t Value)
LBMSDMExpDLL int lbmsdm_iter_del_elem(lbmsdm_iter_t *Iterator, size_t Element)
Delete an element from an array field referenced by an iterator.
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.
LBMSDMExpDLL int lbmsdm_msg_get_uint8_idx(lbmsdm_msg_t *Message, size_t Index, uint8_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_string_name(lbmsdm_msg_t *Message, const char *Name, const char *Value)
LBMSDMExpDLL int lbmsdm_iter_get_uint64(lbmsdm_iter_t *Iterator, uint64_t *Value)
Definition: lbmsdm.h:644
Definition: lbmsdm.h:724
LBMSDMExpDLL int lbmsdm_iter_set_timestamp(lbmsdm_iter_t *Iterator, const struct timeval *Value)
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.
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.
LBMSDMExpDLL int lbmsdm_msg_set_int16_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, int16_t Value)
Definition: lbmsdm.h:736
LBMSDMExpDLL int lbmsdm_msg_add_double_elem_name(lbmsdm_msg_t *Message, const char *Name, double Value)
LBMSDMExpDLL int lbmsdm_msg_add_boolean(lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
Add a field to a message.
Definition: lbmsdm.h:670
LBMSDMExpDLL int lbmsdm_msg_set_uint64_name(lbmsdm_msg_t *Message, const char *Name, uint64_t Value)
LBMSDMExpDLL int lbmsdm_msg_destroy(lbmsdm_msg_t *Message)
Destroy an SDM message object.
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.
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.
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.
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.
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...
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.
LBMSDMExpDLL int lbmsdm_iter_set_uint8_elem(lbmsdm_iter_t *Iterator, size_t Element, uint8_t Value)
LBMSDMExpDLL int lbmsdm_msg_get_double_name(lbmsdm_msg_t *Message, const char *Name, double *Value)
Definition: lbmsdm.h:708
LBMSDMExpDLL int lbmsdm_msg_set_uint64_idx(lbmsdm_msg_t *Message, size_t Index, uint64_t Value)
LBMSDMExpDLL int lbmsdm_msg_add_int64_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_int8_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_int32_name(lbmsdm_msg_t *Message, const char *Name, int32_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_decimal(lbmsdm_iter_t *Iterator, lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_message_name(lbmsdm_msg_t *Message, const char *Name, const lbmsdm_msg_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_idx(lbmsdm_msg_t *Message, size_t Index, const struct timeval *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.
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.
Definition: lbmsdm.h:682
Definition: lbmsdm.h:642
LBMSDMExpDLL int lbmsdm_msg_add_decimal_elem_name(lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_double_elem(lbmsdm_iter_t *Iterator, size_t Element, double *Value)
LBMSDMExpDLL int lbmsdm_msg_set_message_array_name(lbmsdm_msg_t *Message, const char *Name)
Definition: lbmsdm.h:664
LBMSDMExpDLL int lbmsdm_msg_add_uint32_elem_name(lbmsdm_msg_t *Message, const char *Name, uint32_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_iter_add_uint16_elem(lbmsdm_iter_t *Iterator, uint16_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_idx(lbmsdm_msg_t *Message, size_t Index)
Definition: lbmsdm.h:654
LBMSDMExpDLL int lbmsdm_msg_set_int32_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, int32_t Value)
Definition: lbmsdm.h:652
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...
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.
LBMSDMExpDLL int lbmsdm_iter_set_uint64_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_idx(lbmsdm_msg_t *Message, size_t Index, int32_t Value)
LBMSDMExpDLL int lbmsdm_iter_add_uint32_elem(lbmsdm_iter_t *Iterator, uint32_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_unicode_array_name(lbmsdm_msg_t *Message, const char *Name)
Definition: lbmsdm.h:660
Definition: lbmsdm.h:668
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.
LBMSDMExpDLL int lbmsdm_iter_set_double_array(lbmsdm_iter_t *Iterator)
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_add_timestamp(lbmsdm_msg_t *Message, const char *Name, const struct timeval *Value)
LBMSDMExpDLL int lbmsdm_msg_set_float_idx(lbmsdm_msg_t *Message, size_t Index, float Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint64_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_uint32_idx(lbmsdm_msg_t *Message, size_t Index, uint32_t Value)
LBMSDMExpDLL int lbmsdm_msg_get_float_name(lbmsdm_msg_t *Message, const char *Name, float *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_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.
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.
LBMSDMExpDLL int lbmsdm_iter_get_int8_elem(lbmsdm_iter_t *Iterator, size_t Element, int8_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_int32_idx(lbmsdm_msg_t *Message, size_t Index, int32_t 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_get_uint32_idx(lbmsdm_msg_t *Message, size_t Index, uint32_t *Value)
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.
LBMSDMExpDLL int lbmsdm_msg_set_timestamp_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_iter_set_int64_elem(lbmsdm_iter_t *Iterator, size_t Element, int64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_float_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_add_int8_array(lbmsdm_msg_t *Message, const char *Name)
Definition: lbmsdm.h:648
LBMSDMExpDLL int lbmsdm_msg_add_uint8_array(lbmsdm_msg_t *Message, const char *Name)
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.
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.
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.
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.
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_int32_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_get_uint16_idx(lbmsdm_msg_t *Message, size_t Index, uint16_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint16_idx(lbmsdm_msg_t *Message, size_t Index, uint16_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_float(lbmsdm_iter_t *Iterator, float Value)
LBMSDMExpDLL int lbmsdm_iter_set_string_array(lbmsdm_iter_t *Iterator)
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.
LBMSDMExpDLL int lbmsdm_msg_set_float_name(lbmsdm_msg_t *Message, const char *Name, float Value)
Definition: lbmsdm.h:722
LBMSDMExpDLL int lbmsdm_iter_get_elemcnt(lbmsdm_iter_t *Iterator)
Get the number of elements in the current array field for an iterator.
LBMSDMExpDLL int lbmsdm_msg_get_int8_idx(lbmsdm_msg_t *Message, size_t Index, int8_t *Value)
LBMSDMExpDLL int lbmsdm_msg_get_uint8_name(lbmsdm_msg_t *Message, const char *Name, uint8_t *Value)
Definition: lbmsdm.h:634
struct lbmsdm_decimal_t_stct lbmsdm_decimal_t
Structure to hold a scaled decimal number. A scaled decimal number consists of a mantissa and an exp...
LBMSDMExpDLL int lbmsdm_iter_set_uint64(lbmsdm_iter_t *Iterator, uint64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_message_elem(lbmsdm_iter_t *Iterator, size_t Element, const lbmsdm_msg_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_decimal_name(lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_iter_add_int32_elem(lbmsdm_iter_t *Iterator, int32_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint8_name(lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
Definition: lbmsdm.h:636
LBMSDMExpDLL int lbmsdm_iter_get_decimal_elem(lbmsdm_iter_t *Iterator, size_t Element, lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_name(lbmsdm_msg_t *Message, const char *Name, int64_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_int16(lbmsdm_iter_t *Iterator, int16_t Value)
LBMSDMExpDLL int lbmsdm_msg_add_float_elem_name(lbmsdm_msg_t *Message, const char *Name, 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_get_uint32_name(lbmsdm_msg_t *Message, const char *Name, uint32_t *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.
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_set_string_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, const char *Value)
LBMSDMExpDLL int lbmsdm_msg_set_float_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, float Value)
Definition: lbmsdm.h:676
LBMSDMExpDLL int lbmsdm_iter_add_int16_elem(lbmsdm_iter_t *Iterator, int16_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_float_elem(lbmsdm_iter_t *Iterator, size_t Element, float *Value)
LBMSDMExpDLL int lbmsdm_msg_add_int32_array(lbmsdm_msg_t *Message, const char *Name)
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.
LBMSDMExpDLL int lbmsdm_msg_get_float_idx(lbmsdm_msg_t *Message, size_t Index, float *Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint8_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_iter_is_null(lbmsdm_iter_t *Iterator)
Determine if the field referenced by an iterator is null.
LBMSDMExpDLL int lbmsdm_msg_set_double_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, double Value)
int8_t exp
Definition: lbmsdm.h:760
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_float_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, float Value)
LBMSDMExpDLL int lbmsdm_msg_add_int32_elem_name(lbmsdm_msg_t *Message, const char *Name, int32_t Value)
LBMSDMExpDLL int lbmsdm_errnum(void)
Return the error number last encountered by this thread.
LBMSDMExpDLL int lbmsdm_msg_add_boolean_array(lbmsdm_msg_t *Message, const char *Name)
Add an array field to a message.
LBMSDMExpDLL int lbmsdm_msg_add_string(lbmsdm_msg_t *Message, const char *Name, const char *Value)
LBMSDMExpDLL int lbmsdm_iter_set_uint32(lbmsdm_iter_t *Iterator, uint32_t Value)
Definition: lbmsdm.h:700
LBMSDMExpDLL int lbmsdm_iter_add_int8_elem(lbmsdm_iter_t *Iterator, int8_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_string_idx(lbmsdm_msg_t *Message, size_t Index, const char *Value)
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.
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_add_double(lbmsdm_msg_t *Message, const char *Name, double Value)
LBMSDMExpDLL int lbmsdm_iter_set_message_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_iter_set_uint8_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_add_int16(lbmsdm_msg_t *Message, const char *Name, int16_t Value)
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.
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.
LBMSDMExpDLL int lbmsdm_msg_add_uint64_elem_idx(lbmsdm_msg_t *Message, size_t Index, uint64_t Value)
Definition: lbmsdm.h:738
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.
Definition: lbmsdm.h:626
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.
LBMSDMExpDLL int lbmsdm_iter_set_int8_elem(lbmsdm_iter_t *Iterator, size_t Element, int8_t Value)
LBMSDMExpDLL int lbmsdm_iter_set_int64_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_iter_set_decimal_array(lbmsdm_iter_t *Iterator)
LBMSDMExpDLL int lbmsdm_msg_get_decimal_name(lbmsdm_msg_t *Message, const char *Name, lbmsdm_decimal_t *Value)
LBMSDMExpDLL int lbmsdm_msg_add_uint64_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_get_fldcnt(lbmsdm_msg_t *Message)
Get the number of fields in a message.
LBMSDMExpDLL int lbmsdm_msg_add_uint16_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL const char * lbmsdm_iter_get_name(lbmsdm_iter_t *Iterator)
Get the name of the current field for an iterator.
LBMSDMExpDLL int lbmsdm_msg_set_int16_idx(lbmsdm_msg_t *Message, size_t Index, int16_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_int16_array_idx(lbmsdm_msg_t *Message, size_t Index)
Definition: lbmsdm.h:734
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...
LBMSDMExpDLL int lbmsdm_msg_dump(lbmsdm_msg_t *Message, char *Buffer, size_t Size)
Dump a message into a printable string.
LBMSDMExpDLL int lbmsdm_iter_add_string_elem(lbmsdm_iter_t *Iterator, const char *Value)
LBMSDMExpDLL int lbmsdm_msg_get_int32_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, int32_t *Value)
Definition: lbmsdm.h:694
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.
Definition: lbmsdm.h:620
LBMSDMExpDLL int lbmsdm_msg_add_double_elem_idx(lbmsdm_msg_t *Message, size_t Index, double Value)
LBMSDMExpDLL int lbmsdm_iter_get_timestamp_elem(lbmsdm_iter_t *Iterator, size_t Element, struct timeval *Value)
Definition: lbmsdm.h:666
LBMSDMExpDLL int lbmsdm_msg_add_decimal(lbmsdm_msg_t *Message, const char *Name, const lbmsdm_decimal_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_add_timestamp_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_get_uint64_name(lbmsdm_msg_t *Message, const char *Name, uint64_t *Value)
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.
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.
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.
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.
LBMSDMExpDLL int lbmsdm_msg_add_string_array(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_msg_set_int64_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, int64_t Value)
Definition: lbmsdm.h:692
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.
Definition: lbmsdm.h:672
LBMSDMExpDLL int lbmsdm_msg_add_uint16_elem_name(lbmsdm_msg_t *Message, const char *Name, uint16_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_float_array_idx(lbmsdm_msg_t *Message, size_t Index)
LBMSDMExpDLL int lbmsdm_msg_del_name(lbmsdm_msg_t *Message, const char *Name)
Delete a field from a message by field name.
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_add_uint16_elem_idx(lbmsdm_msg_t *Message, size_t Index, uint16_t Value)
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.
LBMSDMExpDLL int lbmsdm_iter_set_uint16(lbmsdm_iter_t *Iterator, uint16_t Value)
LBMSDMExpDLL int lbmsdm_msg_add_uint8_elem_name(lbmsdm_msg_t *Message, const char *Name, uint8_t Value)
LBMSDMExpDLL int lbmsdm_msg_set_uint32_array_name(lbmsdm_msg_t *Message, const char *Name)
LBMSDMExpDLL int lbmsdm_iter_get_int64(lbmsdm_iter_t *Iterator, int64_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_int8_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, int8_t Value)
LBMSDMExpDLL int lbmsdm_iter_get_message_elem(lbmsdm_iter_t *Iterator, size_t Element, lbmsdm_msg_t **Value)
LBMSDMExpDLL int lbmsdm_msg_set_int16_array_name(lbmsdm_msg_t *Message, const char *Name)
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.
LBMSDMExpDLL int lbmsdm_msg_add_int64_elem_idx(lbmsdm_msg_t *Message, size_t Index, int64_t 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_get_uint16_elem_name(lbmsdm_msg_t *Message, const char *Name, size_t Element, uint16_t *Value)
LBMSDMExpDLL int lbmsdm_iter_set_string(lbmsdm_iter_t *Iterator, const char *Value)
Definition: lbmsdm.h:698
LBMSDMExpDLL int lbmsdm_msg_attr_delete(lbmsdm_msg_attr_t *Attributes)
Delete an SDM message attribute object.
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_elemcnt_name(lbmsdm_msg_t *Message, const char *Name)
Get the number of elements in an array field in a message by field name.
LBMSDMExpDLL int lbmsdm_msg_get_uint32_elem_idx(lbmsdm_msg_t *Message, size_t Index, size_t Element, uint32_t *Value)
LBMSDMExpDLL int lbmsdm_iter_get_int16(lbmsdm_iter_t *Iterator, int16_t *Value)
LBMSDMExpDLL int lbmsdm_msg_set_double_name(lbmsdm_msg_t *Message, const char *Name, double Value)
LBMSDMExpDLL int lbmsdm_msg_add_uint16(lbmsdm_msg_t *Message, const char *Name, uint16_t Value)