4#ifndef SQLITE_STATEMENT_HPP
5#define SQLITE_STATEMENT_HPP
9#include <everest/logging.hpp>
10#include <ocpp/common/types.hpp>
12namespace ocpp::common {
15enum class SQLiteString {
26 virtual int step() = 0;
27 virtual int reset() = 0;
28 virtual int changes() = 0;
30 virtual int bind_text(
const int idx,
const std::string& val, SQLiteString lifetime = SQLiteString::Static) = 0;
31 virtual int bind_text(
const std::string& param,
const std::string& val,
32 SQLiteString lifetime = SQLiteString::Static) = 0;
33 virtual int bind_int(
const int idx,
const int val) = 0;
34 virtual int bind_int(
const std::string& param,
const int val) = 0;
35 virtual int bind_datetime(
const int idx,
const ocpp::DateTime val) = 0;
36 virtual int bind_datetime(
const std::string& param,
const ocpp::DateTime val) = 0;
37 virtual int bind_double(
const int idx,
const double val) = 0;
38 virtual int bind_double(
const std::string& param,
const double val) = 0;
39 virtual int bind_null(
const int idx) = 0;
40 virtual int bind_null(
const std::string& param) = 0;
42 virtual int get_number_of_rows() = 0;
43 virtual int column_type(
const int idx) = 0;
44 virtual std::string column_text(
const int idx) = 0;
45 virtual std::optional<std::string> column_text_nullable(
const int idx) = 0;
46 virtual int column_int(
const int idx) = 0;
48 virtual double column_double(
const int idx) = 0;
63 int changes()
override;
65 int bind_text(
const int idx,
const std::string& val, SQLiteString lifetime = SQLiteString::Static)
override;
66 int bind_text(
const std::string& param,
const std::string& val,
67 SQLiteString lifetime = SQLiteString::Static)
override;
68 int bind_int(
const int idx,
const int val)
override;
69 int bind_int(
const std::string& param,
const int val)
override;
70 int bind_datetime(
const int idx,
const ocpp::DateTime val)
override;
71 int bind_datetime(
const std::string& param,
const ocpp::DateTime val)
override;
72 int bind_double(
const int idx,
const double val)
override;
73 int bind_double(
const std::string& param,
const double val)
override;
74 int bind_null(
const int idx)
override;
75 int bind_null(
const std::string& param)
override;
77 int get_number_of_rows()
override;
78 int column_type(
const int idx)
override;
79 std::string column_text(
const int idx)
override;
80 std::optional<std::string> column_text_nullable(
const int idx)
override;
81 int column_int(
const int idx)
override;
83 double column_double(
const int idx)
override;
Contains a DateTime implementation that can parse and create RFC 3339 compatible strings.
Definition: types.hpp:109
Interface for SQLiteStatement wrapper class that handles finalization, step, binding and column acces...
Definition: sqlite_statement.hpp:22
RAII wrapper class that handles finalization, step, binding and column access of sqlite3_stmt.
Definition: sqlite_statement.hpp:52