diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-01-20 08:20:56 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-01-20 08:20:56 +0200 |
commit | ec2ad3cce4c5feb1dabd1fe87dc26799722def19 (patch) | |
tree | 4836f18e527ca0d85b367b99e2d988d8f22b8f5e /odb/session.ixx | |
parent | bce7f97cf5d60cf37ab623760eaa44572e214f69 (diff) |
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.
Diffstat (limited to 'odb/session.ixx')
-rw-r--r-- | odb/session.ixx | 45 |
1 files changed, 44 insertions, 1 deletions
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 <typename T> inline void session:: - erase (const position<T>& p) + cache_erase (const cache_position<T>& p) { // @@ Empty maps are not cleaned up by this version of erase. // if (p.map_ != 0) p.map_->erase (p.pos_); } + + template <typename T> + inline typename session::cache_position<T> session:: + _cache_insert (database_type& db, + const typename object_traits<T>::id_type& id, + const typename object_traits<T>::pointer_type& obj) + { + if (session* s = current_pointer ()) + return s->cache_insert<T> (db, id, obj); + else + return cache_position<T> (); + } + + template <typename T> + inline typename object_traits<T>::pointer_type session:: + _cache_find (database_type& db, const typename object_traits<T>::id_type& id) + { + typedef typename object_traits<T>::pointer_type pointer_type; + + if (const session* s = current_pointer ()) + return s->cache_find<T> (db, id); + else + return pointer_type (); + } + + template <typename T> + inline void session:: + _cache_erase (const cache_position<T>& p) + { + // @@ Empty maps are not cleaned up by this version of erase. + // + if (p.map_ != 0) + p.map_->erase (p.pos_); + } + + template <typename T> + inline void session:: + _cache_erase (database_type& db, + const typename object_traits<T>::id_type& id) + { + if (session* s = current_pointer ()) + s->cache_erase<T> (db, id); + } } |