Newer
Older
Import / research / reflection / sqlite / test2.h
////////////////////////////////////////////////////////////////
// This file is a generated file - DO NOT EDIT
// Database name:              test2
// Command used to generate:   ./db-code-gen.sh test2.sqlite3
// Date generated:             Fri 22 Nov 2019 04:11:28 AEST
////////////////////////////////////////////////////////////////
#include <vector>
#include <string>

// Mapping of DB types to C++ types
using FLOAT = float;
using REAL = double;
using INTEGER = int;
using BLOB = std::vector<uint8_t>;
using TEXT = std::string;
using VARCHAR = std::string;

// Declare visitor interface
template <typename VISITOR, typename T>
void visit(VISITOR& visitor, T& item);

////////////////////////////////////////////////////////////////
// admin table row
struct admin
{
  TEXT m_key;
  INTEGER m_ival;
  BLOB m_value;
};

// admin row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, admin& item)
{
  visitor("key", item.m_key);
  visitor("ival", item.m_ival);
  visitor("value", item.m_value);
}

////////////////////////////////////////////////////////////////
// issuers table row
struct issuers
{
  INTEGER m_groupid;
  BLOB m_issuer_hash;
};

// issuers row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, issuers& item)
{
  visitor("groupid", item.m_groupid);
  visitor("issuer_hash", item.m_issuer_hash);
}

////////////////////////////////////////////////////////////////
// groups table row
struct groups
{
  INTEGER m_groupid;
  INTEGER m_flags;
  INTEGER m_format;
  BLOB m_data;
  BLOB m_policies;
};

// groups row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, groups& item)
{
  visitor("groupid", item.m_groupid);
  visitor("flags", item.m_flags);
  visitor("format", item.m_format);
  visitor("data", item.m_data);
  visitor("policies", item.m_policies);
}

////////////////////////////////////////////////////////////////
// serials table row
struct serials
{
  INTEGER m_groupid;
  BLOB m_serial;
};

// serials row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, serials& item)
{
  visitor("groupid", item.m_groupid);
  visitor("serial", item.m_serial);
}

////////////////////////////////////////////////////////////////
// hashes table row
struct hashes
{
  INTEGER m_groupid;
  BLOB m_sha256;
};

// hashes row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, hashes& item)
{
  visitor("groupid", item.m_groupid);
  visitor("sha256", item.m_sha256);
}

////////////////////////////////////////////////////////////////
// dates table row
struct dates
{
  INTEGER m_groupid;
  REAL m_notbefore;
  REAL m_notafter;
};

// dates row visitor
template <typename VISITOR>
void visit(VISITOR& visitor, dates& item)
{
  visitor("groupid", item.m_groupid);
  visitor("notbefore", item.m_notbefore);
  visitor("notafter", item.m_notafter);
}

////////////////////////////////////////////////////////////////
// Database test2
struct test2
{
  std::vector<admin> m_admin;
  std::vector<issuers> m_issuers;
  std::vector<groups> m_groups;
  std::vector<serials> m_serials;
  std::vector<hashes> m_hashes;
  std::vector<dates> m_dates;
};

// test2 Visitor
template <typename VISITOR>
void visit(VISITOR& visitor, test2& item)
{
  visitor("admin", item.m_admin);
  visitor("issuers", item.m_issuers);
  visitor("groups", item.m_groups);
  visitor("serials", item.m_serials);
  visitor("hashes", item.m_hashes);
  visitor("dates", item.m_dates);
}