#ifndef SQLITE_H #define SQLITE_H #include #include #include #include "database.h" class Sqlite : public Database { private: static thread_local sqlite::database *db; template std::unique_ptr create() const { return std::make_unique(database()); } sqlite::database &database() const; public: Sqlite(std::string path); std::unique_ptr createPageDao() const; std::unique_ptr createRevisionDao() const; std::unique_ptr createUserDao() const; std::unique_ptr createSessionDao() const; std::unique_ptr createCategoryDao() const; std::unique_ptr createPermissionsDao() const; void beginTransaction(); void commitTransaction(); void rollbackTransaction(); virtual ~Sqlite(); }; #endif // SQLITE_H