Provided by: libbson-doc_1.9.2-1_all bug

NAME

       bson_oid_t - bson_oid_t

       BSON ObjectID Abstraction

SYNOPSIS

          #include <bson.h>

          typedef struct {
             uint8_t bytes[12];
          } bson_oid_t;

DESCRIPTION

       The   bson_oid_t  structure  contains  the  12-byte  ObjectId  notation  defined  by  the  BSON  ObjectID
       specification.

       ObjectId is a 12-byte BSON type, constructed using:

       • a 4-byte value representing the seconds since the Unix epoch (in Big Endian)

       • a 3-byte machine identifier

       • a 2-byte process id (Big Endian), and

       • a 3-byte counter (Big Endian), starting with a random value.

STRING CONVERSION

       You  can  convert   an   Object   ID   to   a   string   using   bson_oid_to_string()   and   back   with
       bson_oid_init_from_string().

HASHING

       A bson_oid_t can be used in hashtables using the function bson_oid_hash() and bson_oid_equal().

COMPARING

       A  bson_oid_t  can  be  compared  to  another  using  bson_oid_compare()  for qsort() style comparing and
       bson_oid_equal() for direct equality.

VALIDATING

       You can  validate  that  a  string  containing  a  hex-encoded  ObjectID  is  valid  using  the  function
       bson_oid_is_valid().

EXAMPLE

          #include <bson.h>
          #include <stdio.h>

          int
          main (int argc, char *argv[])
          {
             bson_oid_t oid;
             char str[25];

             bson_oid_init (&oid, NULL);
             bson_oid_to_string (&oid, str);
             printf ("%s\n", str);

             if (bson_oid_is_valid (str, sizeof str)) {
                bson_oid_init_from_string (&oid, str);
             }

             printf ("The UNIX time was: %u\n", (unsigned) bson_oid_get_time_t (&oid));

             return 0;
          }

AUTHOR

       MongoDB, Inc

COPYRIGHT

       2018, MongoDB, Inc