Mcalc  0.1
a machinist's calculator
datastore.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 #ifndef MCALC_DATASTORE_HPP
13 #define MCALC_DATASTORE_HPP
14 
15 #include <vector>
16 #include <map>
17 
18 extern "C" {
19  #include "sqlite3.h"
20 }
21 
23 typedef std::vector<std::vector<std::string>> Records;
24 
26 typedef std::vector<std::string> Record;
27 
33 namespace mc {
34 
35  class Settings;
36  class Interface;
37 
44  class DataStore {
45  private:
46  sqlite3 *database;
47  std::string path;
48  DataStore( std::string p );
49 
50  bool open();
51  void close();
52 
53  std::vector<std::vector<std::string>> query_vector( std::string q );
54  std::vector< std::map<std::string,std::string> > query_map( std::string q );
55 
56  public:
58  ~DataStore();
59 
64  static DataStore* get_instance();
65 
72  std::vector<std::vector<std::string>> get( std::vector<Interface*> r, std::vector<std::string> cols );
73 
79  std::vector<std::vector<std::string>> get( std::vector<Interface*> r );
80 
87  void update( std::string table, std::map<std::string,std::string> s, std::map<std::string,std::string> v );
88 
95  std::vector<std::map<std::string,std::string>> fetch( std::string table, std::map<std::string,std::string> s );
96 
104  std::vector<std::map<std::string,std::string>> fetch( std::string table, std::map<std::string,std::string> s, std::vector<std::string> v );
105  };
106 
107 }
108 
109 #endif
Definition: broadcaster.cpp:4
static DataStore * get_instance()
Definition: datastore.cpp:21
void update(std::string table, std::map< std::string, std::string > s, std::map< std::string, std::string > v)
Definition: datastore.cpp:131
~DataStore()
Definition: datastore.cpp:19
Definition: datastore.hpp:44
std::vector< std::vector< std::string > > Records
Definition: datastore.hpp:23
std::vector< std::string > Record
Definition: datastore.hpp:26
std::vector< std::map< std::string, std::string > > fetch(std::string table, std::map< std::string, std::string > s)
Definition: datastore.cpp:150