Loading...
Searching...
No Matches
worker_builder.h
1
5#pragma once
6
7#include <memory>
8#include <utility>
9
10#include <ucxx/buffer.h>
11
12namespace ucxx {
13
14// Forward declarations
15class Context;
16class Worker;
17
45class WorkerBuilder final {
46 public:
52 explicit WorkerBuilder(std::shared_ptr<Context> context);
53
58
66 WorkerBuilder& operator=(WorkerBuilder&&) noexcept;
67
76 operator std::shared_ptr<Worker>();
77
84 WorkerBuilder& delayedSubmission(bool enable = true);
85
92 WorkerBuilder& pythonFuture(bool enable = true);
93
105 WorkerBuilder& requestAttributes(bool enable = true);
106
114
123 [[nodiscard]] std::shared_ptr<Worker> build();
124
125 private:
126 struct Impl;
127 std::unique_ptr<Impl> _impl;
128};
129
158[[nodiscard]] inline WorkerBuilder workerBuilder(std::shared_ptr<Context> context)
159{
160 return WorkerBuilder(std::move(context));
161}
162
163} // namespace ucxx
Component encapsulating the UCP context.
Definition context.h:35
Builder class for constructing std::shared_ptr<ucxx::Worker> objects.
Definition worker_builder.h:45
WorkerBuilder(const WorkerBuilder &other)
Copy constructor (deep-copies internal state).
std::shared_ptr< Worker > build()
Build and return the Worker.
~WorkerBuilder()
WorkerBuilder destructor.
WorkerBuilder(std::shared_ptr< Context > context)
Constructor for WorkerBuilder with required context.
WorkerBuilder(WorkerBuilder &&) noexcept
Move constructor.
WorkerBuilder & operator=(const WorkerBuilder &other)
Copy assignment operator (deep-copies internal state).
WorkerBuilder & pythonFuture(bool enable=true)
Configure Python future support.
WorkerBuilder & cudaBufferType(BufferType bufferType)
Configure the preferred buffer type for CUDA allocations.
WorkerBuilder & requestAttributes(bool enable=true)
Configure request attributes querying.
WorkerBuilder & delayedSubmission(bool enable=true)
Configure delayed submission to the progress thread.
Component encapsulating a UCP worker.
Definition worker.h:62
Definition address.h:16
WorkerBuilder workerBuilder(std::shared_ptr< Context > context)
Create a WorkerBuilder for constructing a shared_ptr<ucxx::Worker>.
Definition worker_builder.h:158
BufferType
The type of a buffer.
Definition buffer.h:17