From 83aede3c9e27a8370c71dbde3549905c60524702 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 29 Mar 2011 14:43:47 +0200 Subject: Add support for starting immediate and exclusive transactions --- odb/sqlite/statement-cache.hxx | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'odb/sqlite/statement-cache.hxx') diff --git a/odb/sqlite/statement-cache.hxx b/odb/sqlite/statement-cache.hxx index 1b3d4b2..ca4ab2e 100644 --- a/odb/sqlite/statement-cache.hxx +++ b/odb/sqlite/statement-cache.hxx @@ -38,6 +38,24 @@ namespace odb } simple_statement& + begin_immediate_statement () const + { + if (!begin_immediate_) + begin_immediate_statement_ (); + + return *begin_immediate_; + } + + simple_statement& + begin_exclusive_statement () const + { + if (!begin_exclusive_) + begin_exclusive_statement_ (); + + return *begin_exclusive_; + } + + simple_statement& commit_statement () const { return *commit_; @@ -66,6 +84,13 @@ namespace odb } private: + void + begin_immediate_statement_ () const; + + void + begin_exclusive_statement_ () const; + + private: typedef std::map, details::type_info_comparator> map; @@ -73,6 +98,8 @@ namespace odb connection& conn_; details::shared_ptr begin_; + mutable details::shared_ptr begin_immediate_; + mutable details::shared_ptr begin_exclusive_; details::shared_ptr commit_; details::shared_ptr rollback_; -- cgit v1.1