Loading...
Searching...
No Matches
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
13namespace ucxx {
14
15// Forward declarations
16class Endpoint;
17class Request;
19
41class 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
Component encapsulating a UCP endpoint.
Definition endpoint.h:69
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.
Send or receive a message with the UCX Tag API.
Definition request_endpoint_close.h:24
Base type for a UCXX transfer request.
Definition request.h:39
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