10 #define DB_CONF_BUF_SIZE 32
53 db_driver(
const char* host =
"localhost",
const char* user =
"pi",
const char* passwd =
"raspberry",
54 const char* db =
"control_system",
unsigned int port = 3306,
const char* socket = NULL,
55 unsigned long cflags = 0);
72 uint8_t* rfid_serial =
nullptr, uint8_t rfid_ser_len = 0);
84 unsigned long measuree_id);
102 int update_user_rfid(
unsigned long user_id, uint8_t* serial, uint8_t ser_len);
116 bool db_is_open =
true;
118 std::unique_ptr<MYSQL> conn;
122 void handle_stmt_error(MYSQL_STMT* stmt);
124 void mysql_time_to_tm(MYSQL_TIME* src, std::tm *dest);
Handles database querries.
int can_login_subuser(const char *uname)
void test_select_with_binary()
int insert_measurement(measurement *m)
int is_username_available(const char *uname)
int is_rfid_serial_available(uint8_t *serial, uint8_t ser_len)
int query_username(std::string &uname, unsigned long id)
int is_measurement_continuous(unsigned long m_number, unsigned long measuree_id)
void test_insert_with_binary()
db_driver(db_driver_conf *conf)
Construct a new db driver object from configuration.
int insert_user(user_cont *new_usr, const char *password)
int update_user_rfid(unsigned long user_id, uint8_t *serial, uint8_t ser_len)
int query_continuous_measurement(std::vector< measurement > &ms, unsigned long m_number, unsigned long measuree_id)
int query_measurement(measurement *m, unsigned long id)
int query_measurement_headers(user_cont *usr)
int query_user_data(user_cont *usr, const char *uname=nullptr, uint8_t *rfid_serial=nullptr, uint8_t rfid_ser_len=0)
Selects all user data into user container @usr. Data is selected by either username or rfid_serial....
int query_user_credentials(user_cred *creds, const char *uname)
Selects username, password and status into @creds filtered by @uname.
int increment_user_measurement_count(unsigned long id)
Container for measurement data and (convenience) variables, that are used to show measurement in GUI.
Class used as a container for user data, that are selected from database. (and also for insert,...
Container for configuration neccessary to open database connnection.
unsigned long clientflags
Struct used to contain username, password and user status until credentials are verified.