This example demonstrates how to serialize/deserialize data atomically
#include "../include/serdes.h"
#include <stdio.h>
#include <atomic>
uint8_t original_value = 0xAB;
std::atomic<uint8_t> atomic_value{original_value};
static void test_recovered_original_value()
{
if (atomic_value == original_value)
printf("Atomic value recovered (0x%X).\n", atomic_value.load());
else
printf("...failed to recover atomic value (0x%X)!\n", atomic_value.load());
}
int main()
{
uint8_t storage_array[3] = {};
atomic_value = 0u;
test_recovered_original_value();
storage_array[0] = 0;
atomic_value = 0x56u;
test_recovered_original_value();
storage_array[0] = 0;
atomic_value = 0x78u;
test_recovered_original_value();
}