aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/object-statements.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-07-04 17:53:47 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-07-04 17:53:47 +0200
commit4eceea6c547240df49697f9d22ccaf4e9101b915 (patch)
tree6d91662f6d763c51f8e8bf4fe2af2d2aa845ea12 /odb/sqlite/object-statements.hxx
parent83c2af51a362a7b90c7a581aaf3763dc18695a37 (diff)
Implement support for database operations callbacks
New object pragma: callback. New test: common/callback. New manual section: 10.1.4, "callback".
Diffstat (limited to 'odb/sqlite/object-statements.hxx')
-rw-r--r--odb/sqlite/object-statements.hxx22
1 files changed, 22 insertions, 0 deletions
diff --git a/odb/sqlite/object-statements.hxx b/odb/sqlite/object-statements.hxx
index 3ab627d..c181b17 100644
--- a/odb/sqlite/object-statements.hxx
+++ b/odb/sqlite/object-statements.hxx
@@ -377,6 +377,28 @@ namespace odb
typedef std::vector<delayed_load> delayed_loads;
delayed_loads delayed_;
+
+ // Delayed vectors swap guard. See the load_delayed_() function for
+ // details.
+ //
+ struct swap_guard
+ {
+ swap_guard (object_statements& os, delayed_loads& dl)
+ : os_ (os), dl_ (dl)
+ {
+ dl_.swap (os_.delayed_);
+ }
+
+ ~swap_guard ()
+ {
+ os_.clear_delayed ();
+ dl_.swap (os_.delayed_);
+ }
+
+ private:
+ object_statements& os_;
+ delayed_loads& dl_;
+ };
};
}
}