Loading...
Searching...
No Matches
ucxx::RequestBuilderBase< Derived > Class Template Reference

CRTP base for all request builders providing Python future support. More...

#include <request_builder_base.h>

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

Public Member Functions

 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.
Derived && pythonFuture (bool enable=true) &&
 Configure Python future support on a temporary builder.

Protected Member Functions

void markBuilt ()
 Assert that build() has not been called yet, then mark as built.

Protected Attributes

bool _enablePythonFuture {false}
 Enable Python future support.
bool _built {false}
 Whether build() has already been called.

Detailed Description

template<typename Derived>
class ucxx::RequestBuilderBase< Derived >

CRTP base for all request builders providing Python future support.

Holds _enablePythonFuture and provides the pythonFuture() fluent setter. Derived builder classes inherit from this (or from RequestCallbackBuilderBase) to avoid duplicating the member and setter in every builder.

Template Parameters
DerivedThe concrete builder type (CRTP).

Member Function Documentation

◆ markBuilt()

template<typename Derived>
void ucxx::RequestBuilderBase< Derived >::markBuilt ( )
inlineprotected

Assert that build() has not been called yet, then mark as built.

Builders are marked before request validation or construction completes, so a failed first build attempt still consumes the builder.

Exceptions
std::logic_errorif build() has already been called on this builder.

◆ pythonFuture() [1/2]

template<typename Derived>
Derived & ucxx::RequestBuilderBase< Derived >::pythonFuture ( bool enable = true) &
inline

Configure Python future support.

Parameters
[in]enablewhether a Python future should be created and notified (default: true).
Returns
Reference to this builder for method chaining.

◆ pythonFuture() [2/2]

template<typename Derived>
Derived && ucxx::RequestBuilderBase< Derived >::pythonFuture ( bool enable = true) &&
inline

Configure Python future support on a temporary builder.

Parameters
[in]enablewhether a Python future should be created and notified (default: true).
Returns
Rvalue reference to this builder for method chaining.

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