// file : odb/session.ixx // author : Boris Kolpackov // copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #include namespace odb { template inline void session:: erase (const object_position& p) { // @@ Empty maps are not cleaned up by this version of erase. // p.map_->erase (p.pos_); } // // object_pointers // template inline session::object_pointers:: object_pointers () : p_ (), cp_ () {} template inline void session::object_pointers:: set (const pointer_type& p) { p_ = p; cp_ = const_pointer_type (); } template inline void session::object_pointers:: set (const const_pointer_type& cp) { p_ = pointer_type (); cp_ = cp; } template inline void session::object_pointers:: get (pointer_type& p) const { if (!pointer_traits::null_ptr (p_)) p = p_; else if (!pointer_traits::null_ptr (cp_)) throw const_object (); else p = pointer_type (); } template inline void session::object_pointers:: get (const_pointer_type& cp) const { if (!pointer_traits::null_ptr (p_)) cp = const_pointer_type (p_); else if (!pointer_traits::null_ptr (cp_)) cp = cp_; else cp = const_pointer_type (); } }