aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/connection-factory.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-04-29 09:05:42 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-04-30 12:25:45 +0200
commit64f60cfa94d730ea5d6a9e7bc22a8d706f73d53c (patch)
tree1de8d43fa0da0ca9005c459461a8c303e74322ba /odb/sqlite/connection-factory.hxx
parentfa3f14db14671b4c37c400880d097b17aa12b824 (diff)
Add support for SQLite ATTACH DATABASE functionality
Diffstat (limited to 'odb/sqlite/connection-factory.hxx')
-rw-r--r--odb/sqlite/connection-factory.hxx32
1 files changed, 32 insertions, 0 deletions
diff --git a/odb/sqlite/connection-factory.hxx b/odb/sqlite/connection-factory.hxx
index 141fff6..0d01b85 100644
--- a/odb/sqlite/connection-factory.hxx
+++ b/odb/sqlite/connection-factory.hxx
@@ -233,6 +233,38 @@ namespace odb
details::mutex mutex_;
details::condition cond_;
};
+
+ class LIBODB_SQLITE_EXPORT default_attached_connection_factory:
+ public attached_connection_factory
+ {
+ public:
+ explicit
+ default_attached_connection_factory (const connection_ptr& main)
+ : attached_connection_factory (main) {}
+
+ using attached_connection_factory::database; // Accessor.
+
+ virtual void
+ database (database_type&);
+
+ virtual connection_ptr
+ connect ();
+
+ // Active object interface.
+ //
+ virtual void
+ clear ();
+
+ virtual void
+ detach ();
+
+ virtual
+ ~default_attached_connection_factory ();
+
+ protected:
+ static void
+ translate_statement (std::string&, const char*, std::size_t, connection&);
+ };
}
}