From e6a17fcfdb96feb1a3ad4daf62e7b58abb543b88 Mon Sep 17 00:00:00 2001 From: Constantin Michael Date: Fri, 14 Oct 2011 15:08:22 +0200 Subject: Add init_value_extra hook to relational source generation --- odb/relational/source.hxx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'odb') diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx index b2bf39b..e0b83d2 100644 --- a/odb/relational/source.hxx +++ b/odb/relational/source.hxx @@ -1210,7 +1210,7 @@ namespace relational switch (ck) { case ck_ordered: - { + { if (ordered) { os << "// index" << endl @@ -2039,6 +2039,11 @@ namespace relational } virtual void + init_value_extra () + { + } + + virtual void traverse (type& c) { if (c.file () != unit.file ()) @@ -2598,8 +2603,11 @@ namespace relational << "if (l.locked ())" << "{" << "callback (db, obj, callback_event::pre_load);" - << "init (obj, sts.image (), db);" - << "load_ (sts, obj);" + << "init (obj, sts.image (), db);"; + + init_value_extra (); + + os << "load_ (sts, obj);" << "sts.load_delayed ();" << "l.unlock ();" << "callback (db, obj, callback_event::post_load);" @@ -2636,8 +2644,11 @@ namespace relational << "if (l.locked ())" << "{" << "callback (db, obj, callback_event::pre_load);" - << "init (obj, sts.image (), db);" - << "load_ (sts, obj);" + << "init (obj, sts.image (), db);"; + + init_value_extra (); + + os << "load_ (sts, obj);" << "sts.load_delayed ();" << "l.unlock ();" << "callback (db, obj, callback_event::post_load);" -- cgit v1.1