You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(object_store): widen ResolvedObjectEntry::data to PayloadView; drop ObjectBytesBox
Builds on top of !184 to remove the last hidden contract:
resolveEntry's lazy branch used static_pointer_cast<const vector>(pv.anchor),
which forced every lazy producer to anchor on shared_ptr<vector<uint8_t>>
and defeated zero-copy for any producer that already had a different
concrete anchor (C-ABI ctx, arrow::Buffer, mmap pool, etc.).
ResolvedObjectEntry::data (shared_ptr<const vector<uint8_t>>) is now
ResolvedObjectEntry::payload (sdk::PayloadView). resolveEntry returns
PayloadView verbatim in both branches — no concrete-type assumption.
ObjectBytesBox in plugin_data_host.cpp is removed: with PayloadView on
the resolved entry it was a no-value wrapper; toolboxObjectReadLatestAt
allocates a PayloadView directly and the C-ABI handle is its pointer.
All consumers migrated to entry->payload.bytes / entry->payload.anchor.
This is the §14.5 widening from the streaming-manager mejoras report —
precondition for end-to-end zero-copy ingest from the streaming runtime
capturing PJ_payload_t.anchor as shared_ptr<void>.
0 commit comments