address_builder.h
1 
5 #pragma once
6 
7 #include <memory>
8 #include <string_view>
9 #include <utility>
10 
11 namespace ucxx {
12 
13 class Address;
14 class Worker;
15 
23 class AddressBuilder final {
24  public:
30  explicit AddressBuilder(std::shared_ptr<Worker> worker);
31 
37  explicit AddressBuilder(std::string_view addressString);
38 
41 
49  AddressBuilder& operator=(AddressBuilder&&) noexcept;
50 
56  operator std::shared_ptr<Address>();
57 
65  [[nodiscard]] std::shared_ptr<Address> build();
66 
67  private:
68  struct Impl;
69  std::unique_ptr<Impl> _impl;
70 };
71 
72 } // namespace ucxx
Builder class for constructing std::shared_ptr<ucxx::Address> objects.
Definition: address_builder.h:23
AddressBuilder(const AddressBuilder &other)
Copy constructor (deep-copies internal state).
std::shared_ptr< Address > build()
Build and return the Address.
AddressBuilder(std::string_view addressString)
Constructor for AddressBuilder from a serialized address string.
AddressBuilder(AddressBuilder &&) noexcept
Move constructor.
~AddressBuilder()
AddressBuilder destructor.
AddressBuilder & operator=(const AddressBuilder &other)
Copy assignment operator (deep-copies internal state).
AddressBuilder(std::shared_ptr< Worker > worker)
Constructor for AddressBuilder from a worker.
Component encapsulating the address of a UCP worker.
Definition: address.h:26
Definition: address.h:16