tag_probe_builder.h
1 
5 #pragma once
6 
7 #include <memory>
8 
9 #include <ucp/api/ucp.h>
10 
11 namespace ucxx {
12 
13 class TagProbeInfo;
14 
22 class TagProbeInfoBuilder final {
23  public:
28 
35  TagProbeInfoBuilder(const ucp_tag_recv_info_t& info, ucp_tag_message_h handle);
36 
39 
47  TagProbeInfoBuilder& operator=(TagProbeInfoBuilder&&) noexcept;
48 
54  operator std::shared_ptr<TagProbeInfo>();
55 
63  [[nodiscard]] std::shared_ptr<TagProbeInfo> build();
64 
65  private:
66  struct Impl;
67  std::unique_ptr<Impl> _impl;
68 };
69 
70 } // namespace ucxx
Builder class for constructing std::shared_ptr<ucxx::TagProbeInfo> objects.
Definition: tag_probe_builder.h:22
TagProbeInfoBuilder(TagProbeInfoBuilder &&) noexcept
Move constructor.
TagProbeInfoBuilder(const TagProbeInfoBuilder &other)
Copy constructor (deep-copies internal state).
TagProbeInfoBuilder()
Constructor for an unmatched TagProbeInfoBuilder.
~TagProbeInfoBuilder()
TagProbeInfoBuilder destructor.
TagProbeInfoBuilder(const ucp_tag_recv_info_t &info, ucp_tag_message_h handle)
Constructor for a matched TagProbeInfoBuilder.
std::shared_ptr< TagProbeInfo > build()
Build and return the TagProbeInfo.
TagProbeInfoBuilder & operator=(const TagProbeInfoBuilder &other)
Copy assignment operator (deep-copies internal state).
Information about probed tag message.
Definition: tag_probe.h:65
Definition: address.h:16