jaffarCommon
Loading...
Searching...
No Matches
deserializers/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 deserializer
15{
16
23class Base
24{
25public:
32 Base(const void* __restrict inputDataBuffer, const size_t inputDataBufferSize) : _inputDataBuffer((const uint8_t*)inputDataBuffer), _inputDataBufferSize(inputDataBufferSize) {}
33
34 virtual ~Base() = default;
35
44 virtual void pop(void* const __restrict outputDataBuffer, const size_t outputDataBufferSize) = 0;
45
54 virtual void popContiguous(void* const __restrict outputDataBuffer, const size_t outputDataBufferSize) = 0;
55
61 __JAFFAR_COMMON__INLINE__ size_t getInputSize() const { return _inputDataBufferPos; }
62
68 __JAFFAR_COMMON__INLINE__ const uint8_t* getInputDataBuffer() const { return _inputDataBuffer; }
69
70protected:
74 const uint8_t* __restrict const _inputDataBuffer;
75
80
85};
86
87} // namespace deserializer
88
89} // namespace jaffarCommon
Definition deserializers/base.hpp:24
size_t _inputDataBufferPos
Definition deserializers/base.hpp:84
__JAFFAR_COMMON__INLINE__ const uint8_t * getInputDataBuffer() const
Definition deserializers/base.hpp:68
Base(const void *__restrict inputDataBuffer, const size_t inputDataBufferSize)
Definition deserializers/base.hpp:32
virtual void popContiguous(void *const __restrict outputDataBuffer, const size_t outputDataBufferSize)=0
virtual void pop(void *const __restrict outputDataBuffer, const size_t outputDataBufferSize)=0
__JAFFAR_COMMON__INLINE__ size_t getInputSize() const
Definition deserializers/base.hpp:61
const size_t _inputDataBufferSize
Definition deserializers/base.hpp:79
const uint8_t *__restrict const _inputDataBuffer
Definition deserializers/base.hpp:74