Scroll to navigation

BSON_ITER_INIT_FROM_DATA_AT_OFFSET(3) libbson BSON_ITER_INIT_FROM_DATA_AT_OFFSET(3)

SYNOPSIS

bool
bson_iter_init_from_data_at_offset (bson_iter_t *iter,

const uint8_t *data,
size_t length,
uint32_t offset,
uint32_t keylen);


PARAMETERS

  • iter: A bson_iter_t <>.
  • data: A buffer to initialize with. This is not validated.
  • length: The length of data in bytes. This is not validated.
  • offset: The offset of the field to start iterating. This is not validated. This should be an offset previously obtained from bson_iter_offset() <>.
  • keylen: The string length of the key of the field to start iterating. This is not validated. This should be a length previously obtained from bson_iter_key_len() <>.

DESCRIPTION

Creates a bson_iter_t <> and starts iteration on a field at the offset.

bson_iter_init_from_data_at_offset() <> is useful for situations where the progress of a bson_iter_t <> must be saved and restored without relying on the bson_iter_t <> data layout. Saving the progress could be accomplished by:

  • Saving the current field's key length with bson_iter_key_len() <>
  • Saving the current offset with bson_iter_offset() <>
  • Saving the data pointer of the iterated bson_t <> with bson_get_data() <>
  • Saving the data length of the iterated bson_t <> with the len struct field

Then later, these saved values can be passed to bson_iter_init_from_data_at_offset() <> to reconstruct the bson_iter_t <> in constant time.

RETURNS

Returns true if the iter was successfully initialized.

See also:

bson_iter_key_len() <>

bson_iter_offset() <>

bson_get_data() <>



Author

MongoDB, Inc

Copyright

2009-present, MongoDB, Inc.

November 26, 2025 2.2.0