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);
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;
This class implements the iterator used to go through a FastBuffer.
Definition: FastBuffer.h:43
void memcopy(const void *src, const size_t size)
This function copies a buffer into the raw buffer.
Definition: FastBuffer.h:130
_FastBuffer_iterator()
Default constructor.
Definition: FastBuffer.h:50
void rmemcopy(void *dst, const size_t size)
This function copies from the raw buffer to a external buffer.
Definition: FastBuffer.h:146
_FastBuffer_iterator(char *buffer, size_t index)
Constructor.
Definition: FastBuffer.h:62
This class represents a stream of bytes that contains (or will contain) serialized data.
Definition: FastBuffer.h:229
virtual ~FastBuffer()
Default destructor.
bool resize(size_t minSizeInc)
This function resizes the raw buffer.
bool reserve(size_t size)
This function reserves memory for the internal raw buffer.
char * getBuffer() const
This function returns the stream that the eprosima::fastcdr::FastBuffers uses to serialize data.
Definition: FastBuffer.h:283
FastBuffer(char *const buffer, const size_t bufferSize)
This constructor assigns the user's stream of bytes to the eprosima::fastcdr::FastBuffers object.
FastBuffer()
This constructor creates an internal stream and assigns it to the eprosima::fastcdr::FastBuffers obje...
_FastBuffer_iterator iterator
Definition: FastBuffer.h:232
size_t getBufferSize() const
This function returns the size of the allocated memory of the stream that the eprosima::fastcdr::Fast...
Definition: FastBuffer.h:292
FastBuffer(FastBuffer &&fbuffer)
Move constructor.
Definition: FastBuffer.h:253
iterator end()
This function returns a iterator that points to the end of the stream.
Definition: FastBuffer.h:312
iterator begin()
This function returns a iterator that points to the begining of the stream.
Definition: FastBuffer.h:302