Newer
Older
#ifndef DATABASE_HH_
# define DATABASE_HH_
# include <list>
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Host
struct Host {
string login;
string pass;
string ipv4;
int level;
};
typedef std::list<Host> Hosts;
// Group
struct Group {
string name;
Hosts hosts;
};
typedef std::list<Group> Groups;
// User
struct User {
string login;
string pass;
int level;
bool priv;
};
typedef std::list<User> Users;
// Script
struct Script {
string name;
string path;
int level;
};
typedef std::list<Script> Scripts;
// Alias
struct Alias {
string name;
string val;
};
typedef std::list<Alias> Aliases;
// Data container
class Database {
public:
Database();
void open(const string &path);
void close();
protected:
void load_hosts_();
void load_groups_();
void load_users_();
void load_scripts_();
void load_aliases_();
void save_hosts_();
void save_groups_();
void save_users_();
void save_scripts_();
void save_aliases_();
void exec(const string &sql);
private:
sqlite3 *db_;
Hosts hosts_;
Groups groups_;
Users users_;
Scripts scripts_;
Aliases aliases_;