FreeBSD Manual Pages
BSON_STEAL(3) libbson BSON_STEAL(3) SYNOPSIS bool bson_steal (bson_t *dst, bson_t *src); PARAMETERS • dst: An uninitialized bson_t. • src: A bson_t. DESCRIPTION Efficiently transfer the contents of src to dst and destroy src. Before calling this function, src must be initialized and dst must be uninitialized. After this function returns successfully, src is de- stroyed, and dst is initialized and must be freed with bson_destroy(). For example, if you have a higher-level structure that wraps a bson_t, use bson_steal to transfer BSON data into it: typedef struct { bson_t bson; } bson_wrapper_t; bson_wrapper_t * wrap_bson (bson_t *b) { bson_wrapper_t *wrapper = bson_malloc (sizeof (bson_wrapper_t)); if (bson_steal (&wrapper->bson, b)) { return wrapper; } bson_free (wrapper); return NULL; } void bson_wrapper_destroy (bson_wrapper_t *wrapper) { bson_destroy (&wrapper->bson); bson_free (wrapper); } int main (int argc, char *argv[]) { bson_t bson = BSON_INITIALIZER; bson_wrapper_t *wrapper; BSON_APPEND_UTF8 (&bson, "key", "value"); /* now "bson" is destroyed */ wrapper = wrap_bson (&bson); /* clean up */ bson_wrapper_destroy (wrapper); } RETURNS Returns true if src was successfully moved to dst, false if src is in- valid, or was statically initialized, or another error occurred. SEE ALSO: bson_destroy_with_steal(), a lower-level function that returns the raw contents of a bson_t. AUTHOR MongoDB, Inc COPYRIGHT 2009-present, MongoDB, Inc. 1.30.2 Apr 12, 2025 BSON_STEAL(3)
SYNOPSIS | PARAMETERS | DESCRIPTION | RETURNS | AUTHOR | COPYRIGHT
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bson_steal&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
