6 #ifndef _UTILS_C20BUFFERS_HPP_
7 #define _UTILS_C20BUFFERS_HPP_
11 #if defined(__GNUC__) && (__GNUC__ >= 4)
12 #define ADB_memcpy(dst, src, size) __builtin_memcpy(dst, src, size)
14 #define ADB_memcpy(dst, src, size) memcpy(dst, src, size)
32 template<
typename dataType>
37 std::vector<dataType> area;
52 area = std::vector<dataType>(len);
86 dataType *
data(
size_t offset) {
117 size_t append(dataType *da,
size_t len) {
118 ADB_memcpy(&area[pos], da, len *
sizeof(dataType));
Definition: C20Buffers.hpp:33
size_t bufferSize()
To get how many elements are allowed in the buffer.
Definition: C20Buffers.hpp:61
size_t append(dataType *da, size_t len)
Append the data to the buffer.
Definition: C20Buffers.hpp:117
void reset()
reset this buffer, set pos back to 0
Definition: C20Buffers.hpp:41
C20Buffer(size_t len)
Init with original length of buffer.
Definition: C20Buffers.hpp:51
size_t size()
To get how many VALID elements are existed in the buffer.
Definition: C20Buffers.hpp:70
dataType * data()
To get the original memory area ponter of data.
Definition: C20Buffers.hpp:77
dataType * data(size_t offset)
To get the original memory area ponter of data, with offset.
Definition: C20Buffers.hpp:86
size_t append(dataType da)
Append the data to the buffer.
Definition: C20Buffers.hpp:95
Definition: DatasetTool.h:10