15 #ifndef _FASTCDR_CDRBUFFER_H_
16 #define _FASTCDR_CDRBUFFER_H_
18 #include "fastcdr_dll.h"
25 inline uint32_t size_to_uint32(
28 #if defined(_WIN32) || !defined(FASTCDR_ARM32)
30 return static_cast<uint32_t
>(val);
34 #endif // if defined(_WIN32) || !defined(FASTCDR_ARM32)
52 , m_currentPosition(NULL)
66 , m_currentPosition(&m_buffer[index])
80 ptrdiff_t diff = m_currentPosition - m_buffer;
81 m_buffer = iterator.m_buffer;
82 m_currentPosition = m_buffer + diff;
94 ptrdiff_t diff = iterator.m_currentPosition - iterator.m_buffer;
95 m_currentPosition = m_buffer + diff;
103 template<
typename _T>
108 memcpy(m_currentPosition, &data,
sizeof(_T));
116 template<
typename _T>
121 memcpy(&data, m_currentPosition,
sizeof(_T));
136 memcpy(m_currentPosition, src, size);
152 memcpy(dst, m_currentPosition, size);
164 m_currentPosition += numBytes;
176 return static_cast<size_t>(m_currentPosition - it.m_currentPosition);
210 return m_currentPosition;
219 char* m_currentPosition;
250 const size_t bufferSize);
257 , m_internalBuffer(true)
259 std::swap(m_buffer, fbuffer.m_buffer);
260 std::swap(m_bufferSize, fbuffer.m_bufferSize);
261 std::swap(m_internalBuffer, fbuffer.m_internalBuffer);
268 std::swap(m_buffer, fbuffer.m_buffer);
269 std::swap(m_bufferSize, fbuffer.m_bufferSize);
270 std::swap(m_internalBuffer, fbuffer.m_internalBuffer);
314 return (
iterator(m_buffer, m_bufferSize));
348 bool m_internalBuffer;
353 #endif // _FASTCDR_FASTCDRBUFFER_H_