From ec2ad3cce4c5feb1dabd1fe87dc26799722def19 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 20 Jan 2013 08:20:56 +0200 Subject: Add cache_ suffix to session cache functions This way they won't conflict with other functions (e.g., delayed database operations) that may have the same names. --- odb/session.ixx | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'odb/session.ixx') diff --git a/odb/session.ixx b/odb/session.ixx index 4748cae..b7453ca 100644 --- a/odb/session.ixx +++ b/odb/session.ixx @@ -8,11 +8,54 @@ namespace odb { template inline void session:: - erase (const position& p) + cache_erase (const cache_position& p) { // @@ Empty maps are not cleaned up by this version of erase. // if (p.map_ != 0) p.map_->erase (p.pos_); } + + template + inline typename session::cache_position session:: + _cache_insert (database_type& db, + const typename object_traits::id_type& id, + const typename object_traits::pointer_type& obj) + { + if (session* s = current_pointer ()) + return s->cache_insert (db, id, obj); + else + return cache_position (); + } + + template + inline typename object_traits::pointer_type session:: + _cache_find (database_type& db, const typename object_traits::id_type& id) + { + typedef typename object_traits::pointer_type pointer_type; + + if (const session* s = current_pointer ()) + return s->cache_find (db, id); + else + return pointer_type (); + } + + template + inline void session:: + _cache_erase (const cache_position& p) + { + // @@ Empty maps are not cleaned up by this version of erase. + // + if (p.map_ != 0) + p.map_->erase (p.pos_); + } + + template + inline void session:: + _cache_erase (database_type& db, + const typename object_traits::id_type& id) + { + if (session* s = current_pointer ()) + s->cache_erase (db, id); + } } -- cgit v1.1