18#ifndef IOX_POSH_POPO_RPC_HEADER_HPP
19#define IOX_POSH_POPO_RPC_HEADER_HPP
21#include "iceoryx_hoofs/internal/cxx/unique_id.hpp"
22#include "iceoryx_posh/mepoo/chunk_header.hpp"
40 const uint32_t lastKnownClientQueueIndex,
41 const int64_t sequenceId,
42 const uint8_t rpcHeaderVersion)
noexcept;
57 static constexpr uint32_t UNKNOWN_CLIENT_QUEUE_INDEX{std::numeric_limits<uint32_t>::max()};
58 static constexpr int64_t START_SEQUENCE_ID{0};
84 friend class ServerPortUser;
88 uint32_t m_lastKnownClientQueueIndex{UNKNOWN_CLIENT_QUEUE_INDEX};
89 cxx::UniqueId m_uniqueClientQueueId;
90 int64_t m_sequenceId{0};
100 explicit RequestHeader(
const cxx::UniqueId& uniqueClientQueueId,
const uint32_t lastKnownClientQueueIndex)
noexcept;
115 static
RequestHeader* fromPayload(
void* const payload) noexcept;
116 static const
RequestHeader* fromPayload(const
void* const payload) noexcept;
128 const uint32_t lastKnownClientQueueIndex,
129 const int64_t sequenceId)
noexcept;
138 void setServerError() noexcept;
142 bool hasServerError() const noexcept;
145 static const
ResponseHeader* fromPayload(const
void* const payload) noexcept;
148 bool m_hasServerError{
false};