worker_builder.h
1 
5 #pragma once
6 
7 #include <memory>
8 #include <utility>
9 
10 #include <ucxx/buffer.h>
11 
12 namespace ucxx {
13 
14 // Forward declarations
15 class Context;
16 class Worker;
17 
45 class 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).
WorkerBuilder & cudaBufferType(BufferType bufferType)
Configure the preferred buffer type for CUDA allocations.
WorkerBuilder & requestAttributes(bool enable=true)
Configure request attributes querying.
~WorkerBuilder()
WorkerBuilder destructor.
WorkerBuilder(std::shared_ptr< Context > context)
Constructor for WorkerBuilder with required context.
WorkerBuilder(WorkerBuilder &&) noexcept
Move constructor.
WorkerBuilder & delayedSubmission(bool enable=true)
Configure delayed submission to the progress thread.
std::shared_ptr< Worker > build()
Build and return the Worker.
WorkerBuilder & operator=(const WorkerBuilder &other)
Copy assignment operator (deep-copies internal state).
WorkerBuilder & pythonFuture(bool enable=true)
Configure Python future support.
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