memory new serialization
This commit is contained in:
parent
798d69fc7a
commit
a53634e541
2 changed files with 15 additions and 16 deletions
23
memory.cpp
23
memory.cpp
|
@ -40,30 +40,29 @@ void memory::reset()
|
||||||
memset(m, 0x00, size);
|
memset(m, 0x00, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if IS_POSIX
|
JsonDocument memory::serialize() const
|
||||||
json_t *memory::serialize() const
|
|
||||||
{
|
{
|
||||||
json_t *j = json_object();
|
JsonDocument j;
|
||||||
|
|
||||||
json_object_set(j, "size", json_integer(size));
|
j["size"] = size;
|
||||||
|
|
||||||
json_t *ja = json_array();
|
JsonArray ja;
|
||||||
for(size_t i=0; i<size; i++)
|
for(size_t i=0; i<size; i++)
|
||||||
json_array_append(ja, json_integer(m[i]));
|
ja.add(m[i]);
|
||||||
json_object_set(j, "contents", ja);
|
j["contents"] = ja;
|
||||||
|
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|
||||||
memory *memory::deserialize(const json_t *const j)
|
memory *memory::deserialize(const json_t *const j)
|
||||||
{
|
{
|
||||||
size_t size = json_integer_value(json_object_get(j, "size"));
|
size_t size = j["size"];
|
||||||
memory *m = new memory(size);
|
memory *m = new memory(size);
|
||||||
|
|
||||||
json_t *ja = json_object_get(j, "contents");
|
JsonArray ja = j["contents"];
|
||||||
for(size_t i=0; i<size; i++)
|
uint32_t i = 0;
|
||||||
m->m[i] = json_integer_value(json_array_get(ja, i));
|
for(auto v: ja)
|
||||||
|
m->m[i++] = v;
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
8
memory.h
8
memory.h
|
@ -2,6 +2,7 @@
|
||||||
// Released under MIT license
|
// Released under MIT license
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include <ArduinoJson.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
#include "gen.h"
|
#include "gen.h"
|
||||||
|
@ -20,10 +21,9 @@ public:
|
||||||
uint32_t get_memory_size() const { return size; }
|
uint32_t get_memory_size() const { return size; }
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
#if IS_POSIX
|
|
||||||
json_t *serialize() const;
|
JsonDocument serialize() const;
|
||||||
static memory *deserialize(const json_t *const j);
|
static memory *deserialize(const JsonDocument j);
|
||||||
#endif
|
|
||||||
|
|
||||||
uint16_t read_byte(const uint32_t a) const { return m[a]; }
|
uint16_t read_byte(const uint32_t a) const { return m[a]; }
|
||||||
void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; }
|
void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; }
|
||||||
|
|
Loading…
Add table
Reference in a new issue