emlabcpp
modern opinionated embedded C++ library
handler.h File Reference
#include "../../algorithm.h"
#include "../../protocol/converter.h"
#include "../../result.h"
#include "./page.h"
#include <cstdint>
#include <optional>
#include <span>
+ Include dependency graph for handler.h:

Go to the source code of this file.

Classes

struct  emlabcpp::cfg::deser_res
 
struct  emlabcpp::cfg::status
 
struct  emlabcpp::cfg::read_iface
 
struct  emlabcpp::cfg::iface_base
 
struct  emlabcpp::cfg::locate_current_info
 
struct  emlabcpp::cfg::locate_next_info
 
struct  emlabcpp::cfg::update_iface
 
struct  emlabcpp::cfg::load_iface
 

Namespaces

 emlabcpp
 MIT License.
 
 emlabcpp::cfg
 MIT License.
 

Typedefs

template<typename T >
using emlabcpp::cfg::opt = std::optional< T >
 

Enumerations

enum class  emlabcpp::cfg::cell_kind : uint8_t {
  emlabcpp::cfg::SINGLE ,
  emlabcpp::cfg::MULTI
}
 
enum class  emlabcpp::cfg::cache_res {
  emlabcpp::cfg::SEEN ,
  emlabcpp::cfg::NOT_SEEN
}
 
enum class  emlabcpp::cfg::update_status_e : uint8_t {
  emlabcpp::cfg::SUCCESS = 0x00 ,
  emlabcpp::cfg::FULL = 0x01 ,
  emlabcpp::cfg::MISSING_PAGE = 0x02 ,
  emlabcpp::cfg::SERIALIZE_VALUE_ERROR ,
  emlabcpp::cfg::WRITE_ERROR ,
  emlabcpp::cfg::READ_ERROR ,
  emlabcpp::cfg::DESER_ERROR ,
  emlabcpp::cfg::RESET_KEYS_ERROR ,
  emlabcpp::cfg::CLEAR_ERROR ,
  emlabcpp::cfg::LOCATE_FAILED_ERROR ,
  emlabcpp::cfg::ON_KVAL_ERROR ,
  emlabcpp::cfg::MEM_NOT_PAGE_MULTIPLY_ERROR
}
 

Functions

constexpr uint32_t emlabcpp::cfg::closest_multiple_of (uint32_t x, uint32_t r) noexcept
 
opt< cell_kind > emlabcpp::cfg::ser_cell (uint32_t key, std::span< std::byte const > value, std::span< std::byte, cell_size > dest)
 
opt< deser_res > emlabcpp::cfg::deser_cell (std::span< std::byte, cell_size > c)
 
opt< std::span< std::byte > > emlabcpp::cfg::store_kval_impl (uint32_t key, std::byte *beg, std::byte *val_end, std::byte *end)
 
template<typename T >
opt< std::span< std::byte > > emlabcpp::cfg::store_val (T const &val, std::span< std::byte > buffer)
 
opt< std::span< std::byte > > emlabcpp::cfg::store_val (std::span< std::byte const > val, std::span< std::byte > buffer)
 
template<typename T >
opt< T > emlabcpp::cfg::get_val (std::span< std::byte const > data)
 
bool emlabcpp::cfg::is_free_cell (std::span< std::byte, cell_size > cell)
 
locate_current_info emlabcpp::cfg::locate_current_page (std::size_t mem_size, std::size_t page_size, read_iface &iface)
 
locate_next_info emlabcpp::cfg::locate_next_page (std::size_t mem_size, std::size_t page_size, read_iface &iface)
 
bool emlabcpp::cfg::decr_addr (std::size_t &addr, std::size_t n, std::size_t start_addr)
 
std::span< std::byte > emlabcpp::cfg::manifest_value (bool is_seq, auto &cell_val, std::size_t start_addr, auto &addr, auto &iface, auto &buffer)
 
status emlabcpp::cfg::store_key (std::size_t &addr, std::size_t end_addr, uint32_t key, update_iface &iface)
 
status emlabcpp::cfg::dump_unseen_keys (std::size_t addr, std::size_t end_addr, update_iface &iface)
 
status emlabcpp::cfg::update_stored_config (std::size_t start_addr, std::size_t end_addr, update_iface &iface)
 
status emlabcpp::cfg::update (std::size_t mem_size, std::size_t page_size, update_iface &iface)
 
status emlabcpp::cfg::load_stored_config (std::size_t start_addr, std::size_t end_addr, load_iface &iface)
 
status emlabcpp::cfg::load (std::size_t mem_size, std::size_t page_size, load_iface &iface)
 
bool emlabcpp::cfg::is_prefix_of_with_zeros (std::span< std::byte const > a, std::span< std::byte const > b)
 
opt< std::size_t > emlabcpp::cfg::pop_from_container (auto &cont)
 
cache_res emlabcpp::cfg::key_check_unseen_container (auto &cont, uint32_t key)
 

Variables

static constexpr uint32_t emlabcpp::cfg::key_mask = 0x7FFFFFFF
 
static constexpr uint32_t emlabcpp::cfg::sin_bit_mask = 0x80000000
 

Class Documentation

◆ emlabcpp::cfg::deser_res

struct emlabcpp::cfg::deser_res
Class Members
bool is_seq
uint32_t key
uint32_t val

◆ emlabcpp::cfg::locate_current_info

struct emlabcpp::cfg::locate_current_info
+ Collaboration diagram for emlabcpp::cfg::locate_current_info:
Class Members
size_t addr
status status

◆ emlabcpp::cfg::locate_next_info

struct emlabcpp::cfg::locate_next_info
+ Collaboration diagram for emlabcpp::cfg::locate_next_info:
Class Members
size_t addr
hdr_state state
status status