From a28444da4ca6adb016f719e032174ccb54e1692e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 21 Sep 2011 13:00:33 +0200 Subject: Rework const object handling Now objects are always loaded as non-const and the object cache in session treats all objects as non-const. --- odb/session.hxx | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) (limited to 'odb/session.hxx') diff --git a/odb/session.hxx b/odb/session.hxx index d1b61a2..65d0987 100644 --- a/odb/session.hxx +++ b/odb/session.hxx @@ -67,31 +67,6 @@ namespace odb session& operator= (const session&); protected: - template - struct object_pointers - { - typedef typename object_traits::pointer_type pointer_type; - typedef typename object_traits::const_pointer_type const_pointer_type; - - object_pointers (); - - void - set (const pointer_type&); - - void - set (const const_pointer_type&); - - void - get (pointer_type& p) const; - - void - get (const_pointer_type& cp) const; - - private: - pointer_type p_; - const_pointer_type cp_; - }; - struct LIBODB_EXPORT object_map_base: details::shared_base { virtual @@ -101,7 +76,8 @@ namespace odb template struct object_map: object_map_base, - std::map< typename object_traits::id_type, object_pointers > + std::map::id_type, + typename object_traits::pointer_type> { }; @@ -111,7 +87,7 @@ namespace odb template struct object_position { - typedef typename object_traits::object_type object_type; + typedef T object_type; typedef object_map map; typedef typename map::iterator iterator; -- cgit v1.1