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

NAME

       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
       specificiation \&.

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

       \[bu]
         a 4‐byte value representing the seconds since the Unix epoch (in Big Endian)

       \[bu]
         a 3‐byte machine identifier

       \[bu]
         a 2‐byte process id (Big Endian), and

       \[bu]
         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(3)   and   back   with
       bson_oid_init_from_string(3) \&.

HASHING

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

COMPARING

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

VALIDATING

       You can  validate  that  a  string  containing  a  hex‐encoded  ObjectID  is  valid  using  the  function
       bson_oid_is_valid(3) \&.

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;
       }

COLOPHON

       This page is part of libbson.  Please report any bugs at https://jira.mongodb.org/browse/CDRIVER.

libbson                                            2016‐01‐18                                      BSON_OID_T(3)