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>
32 std::shared_ptr<Request>
request{
nullptr};
34 std::shared_ptr<Buffer>
buffer{
nullptr};
63 size_t _totalRequests{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);
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
virtual void populateDelayedSubmissionImpl()=0
Submit the request-specific UCX operation.
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.
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