48 size_t *diserialized_size) = 0;
52 template <enum HType t,
typename T>
55 template <enum HType t,
typename T>
58 if (!buf || buf_size == 0 ||
59 buf_size <
size_t(
sizeof(t) + item.
ValueSize() + 3)) {
66 memcpy(res, &type,
sizeof(
HType));
67 res[
sizeof(
HType)] =
':';
68 res = res +
sizeof(
HType) + 1;
70 memcpy(res, &item_size,
sizeof(
size_t));
71 res[
sizeof(
bsize)] =
':';
72 res = res +
sizeof(
bsize) + 1;
80 template <enum HType t,
typename T>
82 size_t *diserialized_size) {
83 if (!buf || !diserialized_size) {
86 const char *res = buf;
88 char p_type[
sizeof(
HType)] = {0};
89 memcpy(p_type, buf,
sizeof(
HType));
90 HType type = *(
reinterpret_cast<HType *
>(p_type));
94 res +=
sizeof(
HType) + 1;
95 *diserialized_size +=
sizeof(
HType) + 1;
97 char p_size[
sizeof(
bsize)] = {0};
98 memcpy(p_size, res,
sizeof(bsize));
99 bsize size = *(
reinterpret_cast<bsize *
>(p_size));
100 res +=
sizeof(
bsize) + 1;
101 *diserialized_size +=
sizeof(
bsize) + 1;
105 *diserialized_size += size + 1;
109 template <enum HType t,
typename T>
113 operator T() {
return value_; }
125 value_ = *(
reinterpret_cast<const T *
>(buf));
133 size_t *diserialized_size)
override {
138 template <enum HType t>
141 operator std::string() {
return value_; }
146 size_t ValueSize()
const {
return value_.length() + 1; }
153 value_ = std::string(buf);
161 size_t *diserialized_size)
override {
Definition: bridge_header_item.h:30
Definition: bridge_header_item.h:27
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Definition: bridge_header_item.h:35
uint32_t bsize
Definition: bridge_header_item.h:24
Definition: bridge_header_item.h:32
Definition: bridge_header_item.h:28
const char * DiserializeItemImp(HeaderItem< t, T > *item, const char *buf, size_t *diserialized_size)
Definition: bridge_header_item.h:81
Definition: bridge_header_item.h:37
HType
Definition: bridge_header_item.h:26
char * SerializeItemImp(const HeaderItem< t, T > &item, char *buf, size_t buf_size)
Definition: bridge_header_item.h:56
Definition: bridge_header_item.h:31
Definition: bridge_header_item.h:33
Definition: bridge_header_item.h:29
Definition: bridge_header_item.h:34