13#ifndef IOX2_RESIZABLE_MEMORY_RESPONSE_HPP
14#define IOX2_RESIZABLE_MEMORY_RESPONSE_HPP
16#include "iox2/deployment/iceoryx2_cxx_feature_flags.hpp"
18#if IOX2_FEATURE_FLATBUFFERS
20#include <flatbuffers/allocator.h>
26template <ServiceType,
typename,
typename,
typename,
typename>
31template <ServiceType Service>
41 auto
allocate(
size_t size) -> uint8_t* override;
45 auto
reallocate_downward(uint8_t* old_p,
size_t old_size,
size_t new_size,
size_t in_use_back,
size_t in_use_front)
48 auto
len() const ->
size_t;
50 auto
as_ptr() const -> const uint8_t*;
53 template <
ServiceType, typename, typename, typename, typename>
59 iox2_resizable_memory_response_h m_handle =
nullptr;
60 bool m_has_allocated = false;
61 uint8_t* m_ptr =
nullptr;
Internal helper class to handle dynamic memory allocations used in e.g. flatbuffers.
auto len() const -> size_t
ResizableMemoryResponse(const ResizableMemoryResponse &)=delete
void deallocate(uint8_t *ptr, size_t size) override
ResizableMemoryResponse(ResizableMemoryResponse &&) noexcept
auto reallocate_downward(uint8_t *old_p, size_t old_size, size_t new_size, size_t in_use_back, size_t in_use_front) -> uint8_t *override
auto reserved_header_len() const -> size_t
auto allocate(size_t size) -> uint8_t *override
auto as_ptr() const -> const uint8_t *