FreeBSD Manual Pages
BSON_OID_T(3) libbson BSON_OID_T(3) BSON ObjectID Abstraction SYNOPSIS #include <bson/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 5-byte random value. • 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/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 2009-present, MongoDB, Inc. 1.30.2 Apr 12, 2025 BSON_OID_T(3)
SYNOPSIS | DESCRIPTION | STRING CONVERSION | HASHING | COMPARING | VALIDATING | EXAMPLE | AUTHOR | COPYRIGHT
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bson_oid_t&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
