diff options
author | Florent Le Coz <louiz@louiz.org> | 2015-09-18 21:49:54 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2015-09-18 22:09:26 +0200 |
commit | 88ae2599f6dbf655e8806c9b4619ec089425683b (patch) | |
tree | 850cb2048401efff1650a2ce29b41df8464c7092 /src/database/database.hpp | |
parent | 33fa1dcd5a87035de1d9b8df65e5c7551b4bbd1b (diff) | |
download | biboumi-88ae2599f6dbf655e8806c9b4619ec089425683b.tar.gz biboumi-88ae2599f6dbf655e8806c9b4619ec089425683b.tar.bz2 biboumi-88ae2599f6dbf655e8806c9b4619ec089425683b.tar.xz biboumi-88ae2599f6dbf655e8806c9b4619ec089425683b.zip |
Introduce an optional Database module
Uses litesql
Diffstat (limited to 'src/database/database.hpp')
-rw-r--r-- | src/database/database.hpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/database/database.hpp b/src/database/database.hpp new file mode 100644 index 0000000..d8dc735 --- /dev/null +++ b/src/database/database.hpp @@ -0,0 +1,47 @@ +#ifndef DATABASE_HPP_INCLUDED +#define DATABASE_HPP_INCLUDED + +#include <biboumi.h> +#ifdef USE_DATABASE + +#include "biboudb.hpp" + +#include <memory> + +#include <litesql.hpp> + +class Database +{ +public: + Database() = default; + ~Database() = default; + + static void set_verbose(const bool val); + + template<typename PersistentType> + static size_t count() + { + return litesql::select<PersistentType>(Database::get_db()).count(); + } + /** + * Return the object from the db. Create it beforehand (with all default + * values) if it is not already present. + */ + static db::IrcServerOptions get_irc_server_options(const std::string& owner, + const std::string& server); + + static void close(); + +private: + static std::unique_ptr<db::BibouDB> db; + + static db::BibouDB& get_db(); + + Database(const Database&) = delete; + Database(Database&&) = delete; + Database& operator=(const Database&) = delete; + Database& operator=(Database&&) = delete; +}; +#endif /* USE_DATABASE */ + +#endif /* DATABASE_HPP_INCLUDED */ |