#ifndef DATABASE_HPP_ #define DATABASE_HPP_ #include #include #include class DatabaseError {}; typedef std::map result_t; // resource management class class PreparedStatement { public: friend class DatabaseHandle; ~PreparedStatement(); result_t next(); private: PreparedStatement(sqlite3 *dbh, const std::string& statement); sqlite3_stmt *stmt; }; // resource management class class DatabaseHandle { public: DatabaseHandle(const std::string& filename); ~DatabaseHandle(); sqlite3 *getHandle() { return dbh; } PreparedStatement prepareStatement(const std::string& statement); private: sqlite3 *dbh; }; #endif /* DATABASE_HPP_ */