aboutsummaryrefslogtreecommitdiff
path: root/odb/cache-traits.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/cache-traits.hxx')
-rw-r--r--odb/cache-traits.hxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/odb/cache-traits.hxx b/odb/cache-traits.hxx
index 13363da..5732cfc 100644
--- a/odb/cache-traits.hxx
+++ b/odb/cache-traits.hxx
@@ -77,6 +77,13 @@ namespace odb
return position_type ();
}
+ static void
+ initialize (const position_type& p)
+ {
+ if (!p.empty_)
+ session_type::template initialize<object_type> (p.pos_);
+ }
+
static position_type
insert (odb::database& db, const pointer_type& p)
{
@@ -107,7 +114,7 @@ namespace odb
erase (const position_type& p)
{
if (!p.empty_)
- session_type::current ().template erase<object_type> (p.pos_);
+ session_type::template erase<object_type> (p.pos_);
}
};
@@ -154,6 +161,12 @@ namespace odb
pointer_type p (&obj);
return pointer_traits::insert (db, p);
}
+
+ static void
+ initialize (const position_type& p)
+ {
+ pointer_traits::initialize (p);
+ }
};
template <typename T, typename S>