jaffarCommon
Loading...
Searching...
No Matches
serializers/base.hpp
Go to the documentation of this file.
1#pragma once
2
8#include <stddef.h>
9#include <stdint.h>
10
11namespace jaffarCommon
12{
13
14namespace serializer
15{
16
23class Base
24{
25public:
32 Base(void* __restrict outputDataBuffer, const size_t outputDataBufferSize) : _outputDataBuffer((uint8_t*)outputDataBuffer), _outputDataBufferSize(outputDataBufferSize) {}
33
34 virtual ~Base() = default;
35
44 virtual void push(const void* const __restrict inputDataBuffer = nullptr, const size_t inputDataSize = 0) = 0;
45
54 virtual void pushContiguous(const void* const __restrict inputDataBuffer = nullptr, const size_t inputDataSize = 0) = 0;
55
61 __JAFFAR_COMMON__INLINE__ size_t getOutputSize() const { return _outputDataBufferPos; }
62
68 __JAFFAR_COMMON__INLINE__ uint8_t* getOutputDataBuffer() const { return _outputDataBuffer; }
69
70protected:
74 uint8_t* __restrict const _outputDataBuffer;
75
80
85};
86
87} // namespace serializer
88
89} // namespace jaffarCommon
Definition serializers/base.hpp:24
__JAFFAR_COMMON__INLINE__ size_t getOutputSize() const
Definition serializers/base.hpp:61
size_t _outputDataBufferPos
Definition serializers/base.hpp:84
__JAFFAR_COMMON__INLINE__ uint8_t * getOutputDataBuffer() const
Definition serializers/base.hpp:68
virtual void pushContiguous(const void *const __restrict inputDataBuffer=nullptr, const size_t inputDataSize=0)=0
const size_t _outputDataBufferSize
Definition serializers/base.hpp:79
uint8_t *__restrict const _outputDataBuffer
Definition serializers/base.hpp:74
Base(void *__restrict outputDataBuffer, const size_t outputDataBufferSize)
Definition serializers/base.hpp:32
virtual void push(const void *const __restrict inputDataBuffer=nullptr, const size_t inputDataSize=0)=0