70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
#include "values/DnaDB.hpp"
|
|
|
|
#include <sql.hpp>
|
|
|
|
|
|
|
|
void DnaDB::init(const char * db_name)
|
|
{
|
|
sql::init();
|
|
int res = sql::open(db_name, &db);
|
|
|
|
constexpr char create_user_table[] = "CREATE TABLE IF NOT EXISTS user_table ( ID INTEGER PRIMARY KEY, USER_ID INTEGER, MAX_GENERATION INTEGER);";
|
|
res = sql::exec(db, create_user_table, nullptr, nullptr, nullptr);
|
|
}
|
|
|
|
void DnaDB::deinit()
|
|
{
|
|
sql::close(db);
|
|
sql::shutdown();
|
|
}
|
|
|
|
std::vector<int64_t> DnaDB::getUserIds()
|
|
{
|
|
constexpr char sql[] = "SELECT USER_ID FROM user_table;";
|
|
sqlite3_stmt *stmt;
|
|
sql::prepare_v2(db, sql, -1, &stmt, nullptr);
|
|
std::vector<int64_t> ids;
|
|
while (sql::step(stmt) != SQL_DONE)
|
|
{
|
|
int64_t id = sql::column_int64(stmt, 0);
|
|
ids.push_back(id);
|
|
}
|
|
sql::finalize(stmt);
|
|
return ids;
|
|
}
|
|
|
|
int DnaDB::insertUser(int64_t id, int64_t max_gen){
|
|
constexpr char sql[] = "INSERT INTO user_table (USER_ID, MAX_GENERATION) VALUES (?,?);";
|
|
sqlite3_stmt *stmt;
|
|
sql::prepare_v2(db, sql, -1, &stmt, nullptr);
|
|
sql::bind_int64(stmt, 1, id);
|
|
sql::bind_int64(stmt, 2, max_gen);
|
|
int ret = sql::step(stmt);
|
|
sql::finalize(stmt);
|
|
return ret;
|
|
}
|
|
|
|
int DnaDB::updateUser(int64_t id, int64_t max_gen){
|
|
constexpr char sql[] = "UPDATE user_table SET MAX_GENERATION = ? WHERE USER_ID = ?;";
|
|
sqlite3_stmt *stmt;
|
|
sql::prepare_v2(db, sql, -1, &stmt, nullptr);
|
|
sql::bind_int64(stmt, 1, max_gen);
|
|
sql::bind_int64(stmt, 2, id);
|
|
int ret = sql::step(stmt);
|
|
sql::finalize(stmt);
|
|
return ret;
|
|
}
|
|
|
|
void DnaDB::getGenerations()
|
|
{
|
|
}
|
|
|
|
void DnaDB::getLikesForGeneration()
|
|
{
|
|
}
|
|
|
|
void DnaDB::getVectorForGeneration()
|
|
{
|
|
}
|