aboutsummaryrefslogtreecommitdiff
path: root/odb/session.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-09-21 13:00:33 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-09-21 13:00:33 +0200
commita28444da4ca6adb016f719e032174ccb54e1692e (patch)
tree75fe8ceae2d20baa3d4b5375a832598efe8b2fce /odb/session.hxx
parent0046a34d5ad5fc1e88b33279605f179646b0ea59 (diff)
Rework const object handling
Now objects are always loaded as non-const and the object cache in session treats all objects as non-const.
Diffstat (limited to 'odb/session.hxx')
-rw-r--r--odb/session.hxx30
1 files changed, 3 insertions, 27 deletions
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 <typename T>
- struct object_pointers
- {
- typedef typename object_traits<T>::pointer_type pointer_type;
- typedef typename object_traits<T>::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 <typename T>
struct object_map:
object_map_base,
- std::map< typename object_traits<T>::id_type, object_pointers<T> >
+ std::map<typename object_traits<T>::id_type,
+ typename object_traits<T>::pointer_type>
{
};
@@ -111,7 +87,7 @@ namespace odb
template <typename T>
struct object_position
{
- typedef typename object_traits<T>::object_type object_type;
+ typedef T object_type;
typedef object_map<object_type> map;
typedef typename map::iterator iterator;