17#ifndef IOX_POSH_POPO_REQUEST_HPP
18#define IOX_POSH_POPO_REQUEST_HPP
20#include "iceoryx_hoofs/cxx/type_traits.hpp"
21#include "iceoryx_hoofs/cxx/unique_ptr.hpp"
22#include "iceoryx_posh/internal/log/posh_logging.hpp"
23#include "iceoryx_posh/internal/popo/ports/client_port_user.hpp"
24#include "iceoryx_posh/internal/popo/smart_chunk.hpp"
25#include "iceoryx_posh/mepoo/chunk_header.hpp"
26#include "iceoryx_posh/popo/rpc_header.hpp"
32template <
typename RpcType,
typename SendErrorEnum>
39 :
public SmartChunk<RpcInterface<Request<T>, ClientSendError>, T, cxx::add_const_conditionally_t<RequestHeader, T>>
42 SmartChunk<RpcInterface<Request<T>, ClientSendError>, T, cxx::add_const_conditionally_t<RequestHeader, T>>;
44 template <
typename S,
typename TT>
45 using ForClientOnly =
typename BaseType::template ForProducerOnly<S, TT>;
51 using BaseType::BaseType;
56 template <
typename S = T,
typename = ForClientOnly<S, T>>
57 cxx::expected<ClientSendError>
send() noexcept;
68 template <typename, typename, typename>
70 template <typename, typename, typename>
73 using BaseType::release;
75 using BaseType::m_members;
80#include "iceoryx_posh/internal/popo/request.inl"
The ClientImpl class implements the typed client API.
Definition: client_impl.hpp:40
The Request class is a mutable abstraction over types which are written to loaned shared memory....
Definition: request.hpp:40
cxx::expected< ClientSendError > send() noexcept
Sends the request via the client from which it was loaned and automatically release ownership to it.
cxx::add_const_conditionally_t< RequestHeader, T > & getRequestHeader() noexcept
Retrieve the request-header of the underlying memory chunk loaned to the sample.
Definition: request.hpp:33
The ServerImpl class implements the typed server API.
Definition: server_impl.hpp:40