diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-07-04 17:53:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-07-04 17:53:47 +0200 |
commit | 4eceea6c547240df49697f9d22ccaf4e9101b915 (patch) | |
tree | 6d91662f6d763c51f8e8bf4fe2af2d2aa845ea12 /odb/sqlite/object-statements.hxx | |
parent | 83c2af51a362a7b90c7a581aaf3763dc18695a37 (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.hxx | 22 |
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_; + }; }; } } |