// file : odb/session.ixx // copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include namespace odb { 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 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); } }