17#ifndef IOX_POSH_POPO_UNTYPED_SERVER_IMPL_HPP
18#define IOX_POSH_POPO_UNTYPED_SERVER_IMPL_HPP
20#include "iceoryx_posh/capro/service_description.hpp"
21#include "iceoryx_posh/internal/popo/base_server.hpp"
22#include "iceoryx_posh/popo/server_options.hpp"
30template <
typename BaseServerT = BaseServer<>>
31class UntypedServerImpl :
public BaseServerT
36 virtual ~UntypedServerImpl()
noexcept;
38 UntypedServerImpl(
const UntypedServerImpl&) =
delete;
39 UntypedServerImpl(UntypedServerImpl&&) =
delete;
40 UntypedServerImpl& operator=(
const UntypedServerImpl&) =
delete;
41 UntypedServerImpl& operator=(UntypedServerImpl&&) =
delete;
47 cxx::expected<const void*, ServerRequestResult>
take() noexcept;
65 const uint32_t payloadSize,
66 const uint32_t payloadAlignment) noexcept;
71 cxx::expected<ServerSendError>
send(
void* const responsePayload) noexcept;
81 using BaseServerT::
port;
86#include "iceoryx_posh/internal/popo/untyped_server_impl.inl"
class for the identification of a communication event including information on the service,...
Definition service_description.hpp:81
const PortT & port() const noexcept
port
void releaseResponse(void *const responsePayload) noexcept
Releases the ownership of the response chunk provided by the payload pointer.
void releaseRequest(const void *const requestPayload) noexcept
Releases the ownership of the request chunk provided by the payload pointer.
cxx::expected< const void *, ServerRequestResult > take() noexcept
Take the request chunk from the top of the receive queue.
cxx::expected< void *, AllocationError > loan(const RequestHeader *const requestHeader, const uint32_t payloadSize, const uint32_t payloadAlignment) noexcept
Get a response chunk from loaned shared memory.
cxx::expected< ServerSendError > send(void *const responsePayload) noexcept
Sends the provided memory chunk as response to the client.
This struct is used to configure the server.
Definition server_options.hpp:33