bson_value_t

BSON Boxed Container Type

Synopsis

#include <bson.h>

typedef struct _bson_value_t
{
   bson_type_t           value_type;
   union {
      bson_oid_t         v_oid;
      int64_t            v_int64;
      int32_t            v_int32;
      int8_t             v_int8;
      double             v_double;
      bool               v_bool;
      int64_t            v_datetime;
      struct {
         uint32_t        timestamp;
         uint32_t        increment;
      } v_timestamp;
      struct {
         uint32_t        len;
         char           *str;
      } v_utf8;
      struct {
         uint32_t        data_len;
         uint8_t        *data;
      } v_doc;
      struct {
         uint32_t        data_len;
         uint8_t        *data;
         bson_subtype_t  subtype;
      } v_binary;
      struct {
         char           *regex;
         char           *options;
      } v_regex;
      struct {
         char           *collection;
         uint32_t        collection_len;
         bson_oid_t      oid;
      } v_dbpointer;
      struct {
         uint32_t        code_len;
         char           *code;
      } v_code;
      struct {
         uint32_t        code_len;
         char           *code;
         uint32_t        scope_len;
         uint8_t        *scope_data;
      } v_codewscope;
      struct {
         uint32_t        len;
         char           *symbol;
      } v_symbol;
   } value;
} bson_value_t;

Description

The bson_value_t structure is a boxed type for encapsulating a runtime determined type.

Example

const bson_value_t *value;

value = bson_iter_value (&iter);

if (value.type == BSON_TYPE_INT32) {
   printf ("%d\n", value.value.v_int32);
}