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);
- 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().
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 true if the iter was successfully initialized.
SEE ALSO:
bson_iter_key_len()
bson_iter_offset()
bson_get_data()
2009-present, MongoDB, Inc.