Go to the documentation of this file.
79 #define XSBYTEARRAY_INITIALIZER XSARRAY_INITIALIZER(&g_xsByteArrayDescriptor)
85 #define XsByteArray_ref(thisPtr, sz, src, flags) XsArray_ref(thisPtr, sz, src, flags)
86 #define XsByteArray_assign(thisPtr, sz, src) XsArray_assign(thisPtr, sz, src)
87 #define XsByteArray_destruct(thisPtr) XsArray_destruct(thisPtr)
88 #define XsByteArray_copy(thisPtr, copy) XsArray_copy(copy, thisPtr)
89 #define XsByteArray_append(thisPtr, other) XsArray_append(thisPtr, other)
90 #define XsByteArray_popFront(thisPtr, count) XsArray_erase(thisPtr, 0, count)
91 #define XsByteArray_popBack(thisPtr, count) XsArray_erase(thisPtr, (XsSize)-1, count)
92 #define XsByteArray_fromString(str, copy) XsArray_assign(copy, str->m_size?str->m_size:1, str->m_size?str->m_data:"\0")
93 #define XsByteArray_swap(a, b) XsArray_swap(a, b)
94 #define XsByteArray_erase(thisPtr, index, count) XsArray_erase(thisPtr, index, count)
100 struct XsByteArray :
public XsArrayImpl<uint8_t, g_xsByteArrayDescriptor, XsByteArray>
116 : ArrayImpl(ref, sz, flags)
128 #ifndef XSENS_NOITERATOR
129 template <
typename Iterator>
131 inline XsByteArray(Iterator beginIt, Iterator endIt)
132 : ArrayImpl(beginIt, endIt)
140 assign(src.size() + 1,
reinterpret_cast<uint8_t const*
>(src.c_str()));
144 inline uint8_t*
data()
146 return begin().operator ->();
150 inline uint8_t
const*
data()
const
152 return begin().operator ->();
158 return XsString(size(),
reinterpret_cast<const char*
>(
data()));
168 template <
typename T>
169 inline T getValue(
XsSize offset)
const
171 assert(offset +
sizeof(T) <= size());
173 memcpy(&tmp,
data() + offset,
sizeof(T));
181 template <
typename T>
182 inline void appendValue(T
const& value)
185 resize(offset +
sizeof(T));
186 memcpy(
data() + offset, &value,
sizeof(T));
194 template <
typename T>
195 inline void setValue(T
const& value,
XsSize offset)
197 if (size() < offset +
sizeof(T))
198 resize(offset +
sizeof(T));
199 memcpy(
data() + offset, &value,
sizeof(T));
This object describes how to treat the data in an array.
A list of uint8_t values.
struct XsByteArray XsByteArray
void XsByteArray_construct(XsByteArray *thisPtr, XsSize count, uint8_t const *src)
XSARRAY_STRUCT(XsByteArray, uint8_t)
const XsArrayDescriptor XSTYPES_DLL_API g_xsByteArrayDescriptor
Descriptor for XsByteArray.
size_t XsSize
XsSize must be unsigned number!
XsDataFlags
These flags define the behaviour of data contained by Xsens data structures.
A 0-terminated managed string of characters.