12 #include <unordered_map>
14 #include <rapidsmpf/memory/buffer_resource.hpp>
15 #include <rapidsmpf/memory/content_description.hpp>
16 #include <rapidsmpf/streaming/core/message.hpp>
151 mutable std::mutex mutex;
152 std::optional<Message> message;
154 Item() noexcept =
default;
156 Item(
Message&& message) : message(std::move(message)) {}
160 mutable std::mutex global_mutex_;
162 std::unordered_map<MessageId, std::shared_ptr<Item>> items_;
163 mutable std::map<MessageId, ContentDescription> content_descriptions_;
Class managing buffer resources.
Description of an object's content.
Represents a reservation for future memory allocation.
Type-erased message wrapper around a payload.
Container for individually spillable messages.
MessageId insert(Message &&message)
Insert a new message and return its assigned ID.
Message extract(MessageId mid)
Extract and remove a message by ID.
Message copy(MessageId mid, MemoryReservation &reservation)
Create a deep copy of a message without removing it.
std::size_t spill(MessageId mid, BufferResource *br) const
Spill a message's device memory to host memory.
std::map< MessageId, ContentDescription > get_content_descriptions() const
Get a snapshot of current messages' content descriptions.
std::uint64_t MessageId
Unique identifier assigned to each message.
ContentDescription get_content_description(MessageId mid) const
Get the content description of a message by ID.