aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/result.txx
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/result.txx
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/result.txx')
-rw-r--r--odb/sqlite/result.txx9
1 files changed, 7 insertions, 2 deletions
diff --git a/odb/sqlite/result.txx b/odb/sqlite/result.txx
index daf4d39..728411d 100644
--- a/odb/sqlite/result.txx
+++ b/odb/sqlite/result.txx
@@ -3,6 +3,7 @@
// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
+#include <odb/callback.hxx>
#include <odb/exceptions.hxx>
namespace odb
@@ -37,8 +38,11 @@ namespace odb
assert (!statements_.locked ());
typename object_statements<object_type>::auto_lock l (statements_);
+ odb::database& db (this->database ());
+ object_traits::callback (db, obj, callback_event::pre_load);
+
typename object_traits::image_type& i (statements_.image ());
- object_traits::init (obj, i, this->database ());
+ object_traits::init (obj, i, db);
// Initialize the id image and binding and load the rest of the object
// (containers, etc).
@@ -55,8 +59,9 @@ namespace odb
}
object_traits::load_ (statements_, obj);
-
statements_.load_delayed ();
+ object_traits::callback (db, obj, callback_event::post_load);
+
l.unlock ();
}