iceoryx2
C++ Language Bindings
Loading...
Searching...
No Matches
iox2::SampleMut< S, Payload, UserHeader > Class Template Reference

#include <sample_mut.hpp>

Public Member Functions

 SampleMut (SampleMut &&rhs) noexcept
 
auto operator= (SampleMut &&rhs) noexcept -> SampleMut &
 
 ~SampleMut () noexcept
 
 SampleMut (const SampleMut &)=delete
 
auto operator= (const SampleMut &) -> SampleMut &=delete
 
auto header () const -> HeaderPublishSubscribe
 Returns a reference to the [Header] of the [Sample].
 
template<typename T = UserHeader, typename = std::enable_if_t<!std::is_same<void, UserHeader>::value, T>>
auto user_header () const -> const T &
 Returns a reference to the user_header of the [Sample].
 
template<typename T = UserHeader, typename = std::enable_if_t<!std::is_same<void, UserHeader>::value, T>>
auto user_header_mut () -> T &
 Returns a mutable reference to the user_header of the [Sample].
 
template<typename T = Payload, typename = std::enable_if_t<!bb::IsSlice<T>::VALUE, void>>
auto payload () const -> const ValueType &
 Returns a reference to the const payload of the sample.
 
template<typename T = Payload, typename = std::enable_if_t<!bb::IsSlice<T>::VALUE, void>>
auto payload_mut () -> ValueType &
 Returns a reference to the payload of the sample.
 
template<typename T = Payload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto payload () const -> bb::ImmutableSlice< ValueType >
 
template<typename T = Payload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto payload_mut () -> bb::MutableSlice< ValueType >
 

Friends

template<ServiceType , typename , typename >
class Publisher
 
template<ServiceType , typename , typename >
class SampleMutUninit
 
template<ServiceType ST, typename PayloadT , typename UserHeaderT >
auto send (SampleMut< ST, PayloadT, UserHeaderT > &&sample) -> bb::Expected< size_t, SendError >
 

Detailed Description

template<ServiceType S, typename Payload, typename UserHeader>
class iox2::SampleMut< S, Payload, UserHeader >

Acquired by a [Publisher] via

It stores the payload that will be sent to all connected [Subscriber]s. If the [SampleMut] is not sent it will release the loaned memory when going out of scope.

Notes

Does not implement [Send] since it releases unsent samples in the [Publisher] and the [Publisher] is not thread-safe!

Important

DO NOT MOVE THE SAMPLE INTO ANOTHER THREAD!

Definition at line 50 of file sample_mut.hpp.

Constructor & Destructor Documentation

◆ SampleMut() [1/2]

template<ServiceType S, typename Payload , typename UserHeader >
iox2::SampleMut< S, Payload, UserHeader >::SampleMut ( SampleMut< S, Payload, UserHeader > &&  rhs)
inlinenoexcept

Definition at line 115 of file sample_mut.hpp.

◆ ~SampleMut()

template<ServiceType S, typename Payload , typename UserHeader >
iox2::SampleMut< S, Payload, UserHeader >::~SampleMut ( )
inlinenoexcept

Definition at line 138 of file sample_mut.hpp.

◆ SampleMut() [2/2]

template<ServiceType S, typename Payload , typename UserHeader >
iox2::SampleMut< S, Payload, UserHeader >::SampleMut ( const SampleMut< S, Payload, UserHeader > &  )
delete

Member Function Documentation

◆ header()

template<ServiceType S, typename Payload , typename UserHeader >
auto iox2::SampleMut< S, Payload, UserHeader >::header ( ) const -> HeaderPublishSubscribe
inline

Returns a reference to the [Header] of the [Sample].

Definition at line 143 of file sample_mut.hpp.

◆ operator=() [1/2]

template<ServiceType S, typename Payload , typename UserHeader >
auto iox2::SampleMut< S, Payload, UserHeader >::operator= ( const SampleMut< S, Payload, UserHeader > &  ) -> SampleMut &=delete
delete

◆ operator=() [2/2]

template<ServiceType S, typename Payload , typename UserHeader >
auto iox2::SampleMut< S, Payload, UserHeader >::operator= ( SampleMut< S, Payload, UserHeader > &&  rhs) -> SampleMut&
inlinenoexcept

Definition at line 126 of file sample_mut.hpp.

◆ payload() [1/2]

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T = Payload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto iox2::SampleMut< S, Payload, UserHeader >::payload ( ) const -> bb::ImmutableSlice< ValueType >

◆ payload() [2/2]

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T , typename >
auto iox2::SampleMut< S, Payload, UserHeader >::payload ( ) const -> const ValueType&
inline

Returns a reference to the const payload of the sample.

Definition at line 172 of file sample_mut.hpp.

◆ payload_mut() [1/2]

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T = Payload, typename = std::enable_if_t<bb::IsSlice<T>::VALUE, void>>
auto iox2::SampleMut< S, Payload, UserHeader >::payload_mut ( ) -> bb::MutableSlice< ValueType >

◆ payload_mut() [2/2]

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T , typename >
auto iox2::SampleMut< S, Payload, UserHeader >::payload_mut ( ) -> ValueType&
inline

Returns a reference to the payload of the sample.

Definition at line 182 of file sample_mut.hpp.

◆ user_header()

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T , typename >
auto iox2::SampleMut< S, Payload, UserHeader >::user_header ( ) const -> const T&
inline

Returns a reference to the user_header of the [Sample].

Definition at line 152 of file sample_mut.hpp.

◆ user_header_mut()

template<ServiceType S, typename Payload , typename UserHeader >
template<typename T , typename >
auto iox2::SampleMut< S, Payload, UserHeader >::user_header_mut ( ) -> T&
inline

Returns a mutable reference to the user_header of the [Sample].

Definition at line 162 of file sample_mut.hpp.

Friends And Related Symbol Documentation

◆ Publisher

template<ServiceType S, typename Payload , typename UserHeader >
template<ServiceType , typename , typename >
friend class Publisher
friend

Definition at line 88 of file sample_mut.hpp.

◆ SampleMutUninit

template<ServiceType S, typename Payload , typename UserHeader >
template<ServiceType , typename , typename >
friend class SampleMutUninit
friend

Definition at line 90 of file sample_mut.hpp.

◆ send

template<ServiceType S, typename Payload , typename UserHeader >
template<ServiceType ST, typename PayloadT , typename UserHeaderT >
auto send ( SampleMut< ST, PayloadT, UserHeaderT > &&  sample) -> bb::Expected< size_t, SendError >
friend

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