Public Member Functions | List of all members
ucxx::RequestAmBuilder Class Reference

Builder class for constructing std::shared_ptr<ucxx::RequestAm> objects. More...

#include <request_am_builder.h>

Inheritance diagram for ucxx::RequestAmBuilder:
ucxx::RequestCallbackBuilderBase< RequestAmBuilder > ucxx::RequestBuilderBase< Derived >

Public Member Functions

 RequestAmBuilder (std::shared_ptr< Endpoint > endpoint, std::variant< data::AmSend, data::AmReceive > requestData)
 Constructor for RequestAmBuilder with required parameters. More...
 
RequestAmBuilder & receiverCallbackInfo (std::optional< AmReceiverCallbackInfo > info) &
 Configure receiver callback metadata for active message sends. More...
 
RequestAmBuilder && receiverCallbackInfo (std::optional< AmReceiverCallbackInfo > info) &&
 Configure receiver callback metadata for active message sends on a temporary builder. More...
 
std::shared_ptr< RequestAm > build ()
 Build and return the RequestAm. More...
 
 operator std::shared_ptr< RequestAm > ()
 Implicit conversion operator to shared_ptr<RequestAm>. More...
 
 operator std::shared_ptr< Request > ()
 Implicit conversion operator to shared_ptr<Request>. More...
 
- Public Member Functions inherited from ucxx::RequestCallbackBuilderBase< RequestAmBuilder >
RequestAmBuilder & callbackFunction (RequestCallbackUserFunction fn) &
 Set the user-defined callback function to call upon completion. More...
 
RequestAmBuilder && callbackFunction (RequestCallbackUserFunction fn) &&
 Set the user-defined callback function on a temporary builder. More...
 
RequestAmBuilder & callbackData (RequestCallbackUserData data) &
 Set the user-defined data to pass to the callback function. More...
 
RequestAmBuilder && callbackData (RequestCallbackUserData data) &&
 Set the user-defined data to pass to the callback function on a temporary builder. More...
 
- Public Member Functions inherited from ucxx::RequestBuilderBase< Derived >
 RequestBuilderBase ()=default
 Default constructor.
 
 RequestBuilderBase (const RequestBuilderBase &)=delete
 Copy constructor disabled to prevent duplicate request submissions.
 
RequestBuilderBase & operator= (const RequestBuilderBase &)=delete
 Copy assignment disabled to prevent duplicate request submissions.
 
 RequestBuilderBase (RequestBuilderBase &&) noexcept=default
 Move constructor.
 
RequestBuilderBase & operator= (RequestBuilderBase &&)=default
 Move assignment operator.
 
Derived & pythonFuture (bool enable=true) &
 Configure Python future support. More...
 
Derived && pythonFuture (bool enable=true) &&
 Configure Python future support on a temporary builder. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ucxx::RequestBuilderBase< Derived >
void markBuilt ()
 Assert that build() has not been called yet, then mark as built. More...
 
- Protected Attributes inherited from ucxx::RequestCallbackBuilderBase< RequestAmBuilder >
RequestCallbackUserFunction _callbackFunction
 User callback on completion.
 
RequestCallbackUserData _callbackData
 Data passed to callback.
 
- Protected Attributes inherited from ucxx::RequestBuilderBase< Derived >
bool _enablePythonFuture {false}
 Enable Python future support.
 
bool _built {false}
 Whether build() has already been called.
 

Detailed Description

Builder class for constructing std::shared_ptr<ucxx::RequestAm> objects.

Request builders capture the arguments required to create a request and expose optional settings through fluent setters. Construction happens when build() is called or when the builder is implicitly converted to a compatible std::shared_ptr.

Request builders are move-only and single-use. Calling build() or implicitly converting the same builder object more than once throws std::logic_error. The builder is consumed before request validation or construction completes; if that first attempt throws, retrying the same builder still throws std::logic_error.

Request builder objects are not thread-safe. Accessing the same builder object from multiple threads requires external synchronization. Distinct builder objects are independent.

Each request-specific factory function returns the corresponding builder. Required arguments are passed to the factory function, while optional settings such as Python future notification and completion callbacks are configured through method chaining when supported by that request type.

The endpoint and requestData are required and must be provided to requestAmBuilder().

auto req = ucxx::requestAmBuilder(endpoint, amSendData)
.pythonFuture(true)
.callbackFunction(callback)
.callbackData(callbackData)
.build();
std::shared_ptr<ucxx::RequestAm> amReq =
ucxx::requestAmBuilder(endpoint, amReceiveData);
Derived & pythonFuture(bool enable=true) &
Configure Python future support.
Definition: request_builder_base.h:86
RequestAmBuilder & callbackData(RequestCallbackUserData data) &
Set the user-defined data to pass to the callback function.
Definition: request_builder_base.h:151
RequestAmBuilder requestAmBuilder(std::shared_ptr< Endpoint > endpoint, std::variant< data::AmSend, data::AmReceive > requestData)
Create a RequestAmBuilder for constructing a shared_ptr<ucxx::RequestAm>.
Definition: request_am_builder.h:106

Constructor & Destructor Documentation

◆ RequestAmBuilder()

ucxx::RequestAmBuilder::RequestAmBuilder ( std::shared_ptr< Endpoint >  endpoint,
std::variant< data::AmSend, data::AmReceive >  requestData 
)
explicit

Constructor for RequestAmBuilder with required parameters.

Parameters
[in]endpointthe std::shared_ptr<Endpoint> parent component.
[in]requestDatacontainer of the specified message type, including all type-specific data.

Member Function Documentation

◆ build()

std::shared_ptr<RequestAm> ucxx::RequestAmBuilder::build ( )

Build and return the RequestAm.

Returns
The constructed shared_ptr<ucxx::RequestAm> object.

◆ operator std::shared_ptr< Request >()

ucxx::RequestAmBuilder::operator std::shared_ptr< Request > ( )

Implicit conversion operator to shared_ptr<Request>.

Returns
The constructed request as shared_ptr<ucxx::Request>.

◆ operator std::shared_ptr< RequestAm >()

ucxx::RequestAmBuilder::operator std::shared_ptr< RequestAm > ( )

Implicit conversion operator to shared_ptr<RequestAm>.

Returns
The constructed shared_ptr<ucxx::RequestAm> object.

◆ receiverCallbackInfo() [1/2]

RequestAmBuilder& ucxx::RequestAmBuilder::receiverCallbackInfo ( std::optional< AmReceiverCallbackInfo >  info) &

Configure receiver callback metadata for active message sends.

Parameters
[in]infoowner name and unique identifier of the receiver callback.
Returns
Reference to this builder for method chaining.
Exceptions
std::logic_errorif called for an active message receive builder.

◆ receiverCallbackInfo() [2/2]

RequestAmBuilder&& ucxx::RequestAmBuilder::receiverCallbackInfo ( std::optional< AmReceiverCallbackInfo >  info) &&

Configure receiver callback metadata for active message sends on a temporary builder.

Parameters
[in]infoowner name and unique identifier of the receiver callback.
Returns
Rvalue reference to this builder for method chaining.
Exceptions
std::logic_errorif called for an active message receive builder.

The documentation for this class was generated from the following file: