request_endpoint_close_builder.h
1 
5 #pragma once
6 
7 #include <memory>
8 #include <utility>
9 
10 #include <ucxx/request_builder_base.h>
11 #include <ucxx/request_data.h>
12 
13 namespace ucxx {
14 
15 // Forward declarations
16 class Endpoint;
17 class Request;
18 class RequestEndpointClose;
19 
41 class RequestEndpointCloseBuilder : public RequestCallbackBuilderBase<RequestEndpointCloseBuilder> {
42  private:
43  std::shared_ptr<Endpoint> _endpoint;
44  data::EndpointClose _requestData;
45 
46  public:
53  explicit RequestEndpointCloseBuilder(std::shared_ptr<Endpoint> endpoint,
54  data::EndpointClose requestData);
55 
62  [[nodiscard]] std::shared_ptr<RequestEndpointClose> build();
63 
70  operator std::shared_ptr<RequestEndpointClose>();
71 
78  operator std::shared_ptr<Request>();
79 };
80 
90  std::shared_ptr<Endpoint> endpoint, data::EndpointClose requestData)
91 {
92  return RequestEndpointCloseBuilder(std::move(endpoint), std::move(requestData));
93 }
94 
95 } // namespace ucxx
CRTP base for request builders that support completion callbacks.
Definition: request_builder_base.h:115
Builder class for constructing std::shared_ptr<ucxx::RequestEndpointClose> objects.
Definition: request_endpoint_close_builder.h:41
RequestEndpointCloseBuilder(std::shared_ptr< Endpoint > endpoint, data::EndpointClose requestData)
Constructor for RequestEndpointCloseBuilder with required parameters.
std::shared_ptr< RequestEndpointClose > build()
Build and return the RequestEndpointClose.
Data for an endpoint close operation.
Definition: request_data.h:99
Definition: address.h:16
RequestEndpointCloseBuilder requestEndpointCloseBuilder(std::shared_ptr< Endpoint > endpoint, data::EndpointClose requestData)
Create a RequestEndpointCloseBuilder for constructing a shared_ptr<ucxx::RequestEndpointClose>.
Definition: request_endpoint_close_builder.h:89