aboutsummaryrefslogtreecommitdiff
path: root/odb/session.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-01-20 08:20:56 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-01-20 08:20:56 +0200
commitec2ad3cce4c5feb1dabd1fe87dc26799722def19 (patch)
tree4836f18e527ca0d85b367b99e2d988d8f22b8f5e /odb/session.ixx
parentbce7f97cf5d60cf37ab623760eaa44572e214f69 (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.ixx45
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);
+ }
}