#5481·poco

MongoDB: 使用 Element::read 方法读取每种 BSON 元素类型,并保留字节预算

作者: matejk创建于 2026年9月14日更新于 2026年9月14日
标签enhancement

PR #5478 将从服务器响应中读取的每个长度与包含文档中剩余的字节进行限制。在该 PR 之后, `BSONReader` 保持了受限的辅助函数(`readCString`,`readString`,`readBinary`,`readFixed` 具有 `Int32& available` 的预算),并且 `Document::readValue` 和公开的 `BSONReader::read<T>` 专门化都使用了它们。仍然存在一个重复: `Document::readValue` 根据类型字节进行分派,并使用自己的切换,因为虚拟 `Element::read(BinaryReader&)` 没有办法接收字节预算,因此库不再调用 `Element::read`。

内容来源: pocoproject/poco