---
name: "bson_context_t"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_context_t"
---

# bson\_context\_t(3)

BSON OID Generation Context

## SYNOPSIS

```
#include <bson/bson.h>
typedef enum {
  BSON_CONTEXT_NONE = 0,
  BSON_CONTEXT_DISABLE_PID_CACHE = (1 << 2),
} bson_context_flags_t;
typedef struct _bson_context_t bson_context_t;
bson_context_t *
bson_context_get_default (void);
bson_context_t *
bson_context_new (bson_context_flags_t flags);
void
bson_context_destroy (bson_context_t *context);
```

## DESCRIPTION

The *bson\_context\_t* structure is context for generation of BSON Object IDs. This context allows overriding behavior of generating ObjectIDs. The flags **BSON\_CONTEXT\_NONE**, **BSON\_CONTEXT\_THREAD\_SAFE**, and **BSON\_CONTEXT\_DISABLE\_PID\_CACHE** are the only ones used. The others have no effect.

## EXAMPLE

```
#include <bson/bson.h>
int
main (int argc, char *argv[])
{
   bson_context_t *ctx = NULL;
   bson_oid_t oid;
   /* use default context, via bson_context_get_default() */
   bson_oid_init (&oid, NULL);
   /* specify a local context for additional control */
   ctx = bson_context_new (BSON_CONTEXT_NONE);
   bson_oid_init (&oid, ctx);
   bson_context_destroy (ctx);
   return 0;
}
```

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
