Loading...
Searching...
No Matches
memory_handle_builder.h
1
5#pragma once
6
7#include <cstddef>
8#include <memory>
9#include <utility>
10
11#include <ucs/memory/memory_type.h>
12
13namespace ucxx {
14
15class Context;
16class MemoryHandle;
17
26 public:
33 MemoryHandleBuilder(std::shared_ptr<Context> context, size_t size);
34
37
46
52 operator std::shared_ptr<MemoryHandle>();
53
61
69
77 [[nodiscard]] std::shared_ptr<MemoryHandle> build();
78
79 private:
80 struct Impl;
81 std::unique_ptr<Impl> _impl;
82};
83
84} // namespace ucxx
Component encapsulating the UCP context.
Definition context.h:35
MemoryHandleBuilder(MemoryHandleBuilder &&) noexcept
Move constructor.
MemoryHandleBuilder(const MemoryHandleBuilder &other)
Copy constructor (deep-copies internal state).
MemoryHandleBuilder & memoryType(ucs_memory_type_t memoryType)
Configure the mapped memory type.
MemoryHandleBuilder & buffer(void *buffer)
Configure the buffer to map.
std::shared_ptr< MemoryHandle > build()
Build and return the MemoryHandle.
MemoryHandleBuilder(std::shared_ptr< Context > context, size_t size)
Constructor for MemoryHandleBuilder.
~MemoryHandleBuilder()
MemoryHandleBuilder destructor.
MemoryHandleBuilder & operator=(const MemoryHandleBuilder &other)
Copy assignment operator (deep-copies internal state).
Component holding a UCP memory handle.
Definition memory_handle.h:28
Definition address.h:16