feat(UML-1582): Добавлена обертка для упаковки сырых данных
This commit is contained in:
parent
bd46f29041
commit
b1f1cadcfc
@ -12,6 +12,11 @@
|
|||||||
|
|
||||||
namespace free_rtos {
|
namespace free_rtos {
|
||||||
|
|
||||||
|
struct RawData {
|
||||||
|
void *data{nullptr};
|
||||||
|
size_t size{0};
|
||||||
|
};
|
||||||
|
|
||||||
struct Padding {
|
struct Padding {
|
||||||
size_t size;
|
size_t size;
|
||||||
};
|
};
|
||||||
@ -47,6 +52,16 @@ struct PackFunctor : public PackFunctorBase {
|
|||||||
raw += size;
|
raw += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void operator()(RawData& data) {
|
||||||
|
if(data.data == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(raw, data.data, data.size);
|
||||||
|
|
||||||
|
raw += data.size;
|
||||||
|
}
|
||||||
|
|
||||||
void operator()(Padding& padding) {
|
void operator()(Padding& padding) {
|
||||||
raw += padding.size;
|
raw += padding.size;
|
||||||
}
|
}
|
||||||
@ -85,6 +100,16 @@ struct UnpackFunctor : public UnpackFunctorBase {
|
|||||||
raw += size;
|
raw += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void operator()(RawData& data) {
|
||||||
|
if(data.data == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(data.data, raw, data.size);
|
||||||
|
|
||||||
|
raw += data.size;
|
||||||
|
}
|
||||||
|
|
||||||
void operator()(Padding& padding) {
|
void operator()(Padding& padding) {
|
||||||
raw += padding.size;
|
raw += padding.size;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user