From dac72baef46897b80fc98632cef182fb266a5d60 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 21 Mar 2011 17:24:35 +0200 Subject: Add base SQLite database classes --- odb/sqlite/database.hxx | 108 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 odb/sqlite/database.hxx (limited to 'odb/sqlite/database.hxx') diff --git a/odb/sqlite/database.hxx b/odb/sqlite/database.hxx new file mode 100644 index 0000000..121f85c --- /dev/null +++ b/odb/sqlite/database.hxx @@ -0,0 +1,108 @@ +// file : odb/sqlite/database.hxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#ifndef ODB_SQLITE_DATABASE_HXX +#define ODB_SQLITE_DATABASE_HXX + +#include + +#include + +#include +#include // std::auto_ptr +#include // std::ostream + +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace odb +{ + namespace sqlite + { + class LIBODB_SQLITE_EXPORT database: public odb::database + { + public: + typedef sqlite::connection connection_type; + + public: + database (const std::string& name, + int flags = SQLITE_OPEN_READWRITE, + std::auto_ptr = + std::auto_ptr (0)); + + // Extract the database parameters from the command line. The + // following options are recognized: + // + // --database + // --create + // --read-only + // --options-file + // + // For more information, see the output of the print_usage() function + // below. If erase is true, the above options are removed from the argv + // array and the argc count is updated accordingly. The command line + // options override the flags passed as an argument. This constructor + // may throw the cli_exception exception. + // + database (int& argc, + char* argv[], + bool erase = false, + int flags = SQLITE_OPEN_READWRITE, + std::auto_ptr = + std::auto_ptr (0)); + + static void + print_usage (std::ostream&); + + + public: + const std::string& + name () const + { + return name_; + } + + int + flags () const + { + return flags_; + } + + public: + virtual unsigned long long + execute (const char* statement, std::size_t length); + + public: + virtual transaction_impl* + begin (); + + public: + details::shared_ptr + connection (); + + public: + virtual + ~database (); + + private: + std::string name_; + int flags_; + std::auto_ptr factory_; + }; + } +} + +#include + +#include + +#endif // ODB_SQLITE_DATABASE_HXX -- cgit v1.1