12 #include <ucp/api/ucp.h>
14 #include <ucxx/buffer.h>
15 #include <ucxx/endpoint.h>
16 #include <ucxx/future.h>
17 #include <ucxx/request.h>
18 #include <ucxx/request_tag_multi_builder.h>
22 class RequestTagMulti;
32 std::shared_ptr<Request>
request{
nullptr};
34 std::shared_ptr<Buffer>
buffer{
nullptr};
63 size_t _totalFrames{0};
65 _completedRequestsMutex{};
66 size_t _completedRequests{0};
67 ucs_status_t _finalStatus{
107 const std::variant<data::TagMultiSend, data::TagMultiReceive> requestData,
108 std::string operationName,
109 const bool enablePythonFuture);
111 void populateDelayedSubmissionImpl()
override;
148 friend class detail::ConstructorFactory;
Send or receive multiple messages with the UCX Tag API.
Definition: request_tag_multi.h:61
void recvCallback(ucs_status_t status)
Callback to submit request to receive new header or frames.
virtual ~RequestTagMulti()
ucxx::RequestTagMulti destructor.
bool _isFilled
Whether the all requests have been posted.
Definition: request_tag_multi.h:72
void markCompleted(ucs_status_t status)
Mark request as completed.
void cancel() override
Cancel the request.
std::vector< BufferRequestPtr > _bufferRequests
Container of all requests posted.
Definition: request_tag_multi.h:71
Base type for a UCXX transfer request.
Definition: request.h:39
std::shared_ptr< BufferRequest > BufferRequestPtr
Pre-defined type for a pointer to an ucxx::BufferRequest.
Definition: request_tag_multi.h:50
std::shared_ptr< RequestTagMulti > RequestTagMultiPtr
Pre-defined type for a pointer to an ucxx::RequestTagMulti.
Definition: request_tag_multi.h:201
Container for data required by a ucxx::RequestTagMulti.
Definition: request_tag_multi.h:31
std::shared_ptr< Buffer > buffer
Internally allocated buffer to receive a frame.
Definition: request_tag_multi.h:34
std::shared_ptr< std::string > stringBuffer
Serialized Header
Definition: request_tag_multi.h:33
std::shared_ptr< Request > request
The ucxx::RequestTag of a header or frame.
Definition: request_tag_multi.h:32