Home
libucxx
libucxx
ucxx
nightly (0.53)
nightly (0.53)
stable (0.52)
legacy (0.51)
Toggle main menu visibility
Loading...
Searching...
No Matches
include
ucxx
request_am.h
1
5
#pragma once
6
#include <cstddef>
7
#include <memory>
8
#include <string>
9
#include <utility>
10
#include <vector>
11
12
#include <ucp/api/ucp.h>
13
14
#include <ucxx/delayed_submission.h>
15
#include <ucxx/request.h>
16
#include <ucxx/request_am_builder.h>
17
#include <ucxx/typedefs.h>
18
19
namespace
ucxx
{
20
21
class
Buffer
;
22
23
namespace
internal {
24
class
RecvAmMessage
;
25
}
// namespace internal
26
33
class
RequestAm :
public
Request
{
34
private
:
35
friend
class
internal::RecvAmMessage
;
36
37
std::vector<std::byte> _header{};
40
66
RequestAm(std::shared_ptr<Component> endpointOrWorker,
67
const
std::variant<data::AmSend, data::AmReceive> requestData,
68
std::string operationName,
69
const
bool
enablePythonFuture =
false
,
70
RequestCallbackUserFunction
callbackFunction =
nullptr
,
71
RequestCallbackUserData
callbackData =
nullptr
);
72
73
void
populateDelayedSubmissionImpl()
override
;
74
75
public
:
76
// Allow internal construction without exposing factory functions.
77
friend
class
detail::ConstructorFactory;
78
85
void
cancel
()
override
;
86
95
void
request
();
96
124
[[nodiscard]]
static
ucs_status_t
recvCallback
(
void
* arg,
125
const
void
* header,
126
size_t
header_length,
127
void
* data,
128
size_t
length,
129
const
ucp_am_recv_param_t* param);
130
131
[[nodiscard]] std::shared_ptr<Buffer>
getRecvBuffer
()
override
;
132
133
[[nodiscard]] std::string
getRecvHeader
()
override
;
134
};
135
136
}
// namespace ucxx
ucxx::Buffer
A simple object to simplify managing buffers.
Definition
buffer.h:31
ucxx::RequestAm::request
void request()
Create and submit an active message send request.
ucxx::RequestAm::cancel
void cancel() override
Cancel the request.
ucxx::RequestAm::getRecvHeader
std::string getRecvHeader() override
Get the received user header.
ucxx::RequestAm::getRecvBuffer
std::shared_ptr< Buffer > getRecvBuffer() override
Get the received buffer.
ucxx::RequestAm::recvCallback
static ucs_status_t recvCallback(void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
Receive callback registered by ucxx::Worker.
ucxx::Request::Request
Request(std::shared_ptr< Component > endpointOrWorker, const data::RequestData requestData, std::string operationName, const bool enablePythonFuture=false, RequestCallbackUserFunction callbackFunction=nullptr, RequestCallbackUserData callbackData=nullptr)
Protected constructor of an abstract ucxx::Request.
ucxx::internal::RecvAmMessage
Handle receiving of a ucxx::RequestAm.
Definition
request_am.h:36
ucxx
Definition
address.h:16
ucxx::RequestCallbackUserFunction
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
ucxx::RequestCallbackUserData
std::shared_ptr< void > RequestCallbackUserData
Data for the user-defined function provided to the ucxx::Request callback.
Definition
typedefs.h:105
Generated by
1.18.0