iceoryx2
C++ Language Bindings
Loading...
Searching...
No Matches
iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader > Class Template Reference

#include <pending_response.hpp>

Public Member Functions

 PendingResponse (PendingResponse &&rhs) noexcept
 
auto operator= (PendingResponse &&rhs) noexcept -> PendingResponse &
 
 ~PendingResponse () noexcept
 
 PendingResponse (const PendingResponse &)=delete
 
auto operator= (const PendingResponse &) -> PendingResponse &=delete
 
auto receive () -> bb::Expected< bb::Optional< Response< Service, ResponsePayload, ResponseUserHeader > >, ReceiveError >
 
auto header () -> RequestHeader
 
template<typename T = RequestUserHeader, typename = std::enable_if_t<!std::is_same<void, RequestUserHeader>::value, T>>
auto user_header () -> const T &
 
template<typename T = RequestPayload, typename = std::enable_if_t<!bb::IsSlice<T>::VALUE, void>>
auto payload () const -> const T &
 
template<typename T = RequestPayload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto payload () const -> bb::ImmutableSlice< ValueType >
 
auto number_of_server_connections () const -> size_t
 
auto has_response () -> bool
 
auto is_connected () const -> bool
 
void set_disconnect_hint ()
 

Friends

template<ServiceType , typename , typename , typename , typename >
class Client
 
template<ServiceType S, typename RequestPayloadT , typename RequestUserHeaderT , typename ResponsePayloadT , typename ResponseUserHeaderT >
auto send (RequestMut< S, RequestPayloadT, RequestUserHeaderT, ResponsePayloadT, ResponseUserHeaderT > &&request) -> bb::Expected< PendingResponse< S, RequestPayloadT, RequestUserHeaderT, ResponsePayloadT, ResponseUserHeaderT >, RequestSendError >
 

Detailed Description

template<ServiceType Service, typename RequestPayload, typename RequestUserHeader, typename ResponsePayload, typename ResponseUserHeader>
class iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >

Represents an active connection to all [Server] that received the [RequestMut]. The [Client] can use it to receive the corresponding [Response]s.

As soon as it goes out of scope, the connections are closed and the [Server]s are informed.

Definition at line 39 of file pending_response.hpp.

Constructor & Destructor Documentation

◆ PendingResponse() [1/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::PendingResponse ( PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader > &&  rhs)
inlinenoexcept

Definition at line 119 of file pending_response.hpp.

◆ ~PendingResponse()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::~PendingResponse ( )
inlinenoexcept

Definition at line 145 of file pending_response.hpp.

◆ PendingResponse() [2/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::PendingResponse ( const PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader > &  )
delete

Member Function Documentation

◆ has_response()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::has_response ( ) -> bool
inline

Returns [true] when a [Server] has sent a [Response] otherwise [false].

Definition at line 243 of file pending_response.hpp.

◆ header()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::header ( ) -> RequestHeader
inline

Returns a reference to the iceoryx2 internal [RequestHeader] of the corresponding [RequestMut]

Definition at line 175 of file pending_response.hpp.

◆ is_connected()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::is_connected ( ) const -> bool
inline

Returns [true] until the [ActiveRequest] goes out of scope on the [Server]s side indicating that the [Server] will no longer send [Response]s. It also returns [false] when there are no [Server]s.

Definition at line 254 of file pending_response.hpp.

◆ number_of_server_connections()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::number_of_server_connections ( ) const -> size_t
inline

Returns how many [Server]s received the corresponding [RequestMut] initially.

Definition at line 232 of file pending_response.hpp.

◆ operator=() [1/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::operator= ( const PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader > &  ) -> PendingResponse &=delete
delete

◆ operator=() [2/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::operator= ( PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader > &&  rhs) -> PendingResponse&
inlinenoexcept

Definition at line 129 of file pending_response.hpp.

◆ payload() [1/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
template<typename T = RequestPayload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::payload ( ) const -> bb::ImmutableSlice< ValueType >

Returns a reference to the request payload of the corresponding [RequestMut]

◆ payload() [2/2]

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
template<typename T , typename >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::payload ( ) const -> const T&
inline

Returns a reference to the request payload of the corresponding [RequestMut]

Definition at line 203 of file pending_response.hpp.

◆ receive()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::receive ( ) -> bb::Expected<bb::Optional<Response<Service, ResponsePayload, ResponseUserHeader>>, ReceiveError>
inline

Receives a [Response] from one of the [Server]s that received the [RequestMut].

Definition at line 155 of file pending_response.hpp.

References iox2::bb::err(), and iox2::bb::NULLOPT.

◆ set_disconnect_hint()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
void iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::set_disconnect_hint ( )
inline

Marks the connection state that the [Client] wants to gracefully disconnect. When the [Server] reads this, it can send the last [Response] and drop the corresponding [ActiveRequest] to terminate the connection ensuring that no [Response] is lost on the [Client] side.

Definition at line 264 of file pending_response.hpp.

◆ user_header()

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
template<typename T , typename >
auto iox2::PendingResponse< Service, RequestPayload, RequestUserHeader, ResponsePayload, ResponseUserHeader >::user_header ( ) -> const T&
inline

Returns a reference to the user defined request header of the corresponding [RequestMut]

Definition at line 189 of file pending_response.hpp.

Friends And Related Symbol Documentation

◆ Client

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
template<ServiceType , typename , typename , typename , typename >
friend class Client
friend

Definition at line 96 of file pending_response.hpp.

◆ send

template<ServiceType Service, typename RequestPayload , typename RequestUserHeader , typename ResponsePayload , typename ResponseUserHeader >
template<ServiceType S, typename RequestPayloadT , typename RequestUserHeaderT , typename ResponsePayloadT , typename ResponseUserHeaderT >
auto send ( RequestMut< S, RequestPayloadT, RequestUserHeaderT, ResponsePayloadT, ResponseUserHeaderT > &&  request) -> bb::Expected< PendingResponse< S, RequestPayloadT, RequestUserHeaderT, ResponsePayloadT, ResponseUserHeaderT >, RequestSendError >
friend

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