From 46ed6c184190729abff308e4c0d9257bf7c89a45 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 2 Nov 2011 13:53:20 +0200 Subject: Add database::reload() overloads for pointers --- odb/database.hxx | 16 ++++++++++++++++ odb/database.ixx | 30 ++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/odb/database.hxx b/odb/database.hxx index 8ccc642..c7816f6 100644 --- a/odb/database.hxx +++ b/odb/database.hxx @@ -70,6 +70,22 @@ namespace odb void reload (T& object); + template + void + reload (T* obj_ptr); + + template class P> + void + reload (const P& obj_ptr); + + template class P> + void + reload (P& obj_ptr); + + template + void + reload (const typename object_traits::pointer_type& obj_ptr); + // Return NULL/false if not found. // template diff --git a/odb/database.ixx b/odb/database.ixx index 7bc6520..11b59ca 100644 --- a/odb/database.ixx +++ b/odb/database.ixx @@ -65,6 +65,36 @@ namespace odb template inline void database:: + reload (T* p) + { + reload (*p); + } + + template class P> + inline void database:: + reload (const P& p) + { + reload (odb::pointer_traits< P >::get_ref (p)); + } + + template class P> + inline void database:: + reload (P& p) + { + reload (odb::pointer_traits< P >::get_ref (p)); + } + + template + inline void database:: + reload (const typename object_traits::pointer_type& pobj) + { + typedef typename object_traits::pointer_type pointer_type; + + reload (odb::pointer_traits::get_ref (pobj)); + } + + template + inline void database:: update (T* p) { typedef typename object_traits::pointer_type object_pointer; -- cgit v1.1