request_endpoint_close.h
1 
5 #pragma once
6 #include <memory>
7 #include <string>
8 #include <utility>
9 
10 #include <ucp/api/ucp.h>
11 
12 #include <ucxx/delayed_submission.h>
13 #include <ucxx/request.h>
14 #include <ucxx/request_endpoint_close_builder.h>
15 #include <ucxx/typedefs.h>
16 
17 namespace ucxx {
18 
24 class RequestEndpointClose : public Request {
25  private:
50  RequestEndpointClose(std::shared_ptr<Endpoint> endpoint,
51  const data::EndpointClose requestData,
52  std::string operationName,
53  const bool enablePythonFuture = false,
54  RequestCallbackUserFunction callbackFunction = nullptr,
55  RequestCallbackUserData callbackData = nullptr);
56 
57  void populateDelayedSubmissionImpl() override;
58 
59  public:
60  // Allow internal construction without exposing factory functions.
61  friend class detail::ConstructorFactory;
62 
71  void request();
72 
88  static void endpointCloseCallback(void* request, ucs_status_t status, void* arg);
89 };
90 
91 } // namespace ucxx
Send or receive a message with the UCX Tag API.
Definition: request_endpoint_close.h:24
static void endpointCloseCallback(void *request, ucs_status_t status, void *arg)
Callback executed by UCX when an endpoint close request is completed.
void request()
Create and submit an endpoint close request.
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
std::function< void(ucs_status_t, std::shared_ptr< void >)> RequestCallbackUserFunction
A user-defined function to execute as part of a ucxx::Request callback.
Definition: typedefs.h:97
std::shared_ptr< void > RequestCallbackUserData
Data for the user-defined function provided to the ucxx::Request callback.
Definition: typedefs.h:105