// file : odb/qt/smart-ptr/lazy-pointer-traits.hxx // copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_QT_SMART_PTR_LAZY_POINTER_TRAITS_HXX #define ODB_QT_SMART_PTR_LAZY_POINTER_TRAITS_HXX #include #include #include namespace odb { template class pointer_traits > { public: static const pointer_kind kind = pk_shared; static const bool lazy = true; typedef T element_type; typedef QLazySharedPointer pointer_type; typedef QSharedPointer eager_pointer_type; static bool null_ptr (const pointer_type& p) { return !p; } template static typename object_traits::id_type object_id (const pointer_type& p) { return p.template objectId (); } }; template class pointer_traits > { public: static const pointer_kind kind = pk_weak; static const bool lazy = true; typedef T element_type; typedef QLazyWeakPointer pointer_type; typedef QLazySharedPointer strong_pointer_type; typedef QWeakPointer eager_pointer_type; static strong_pointer_type lock (const pointer_type& p) { return p.toStrongRef (); } }; } #include #endif // ODB_QT_SMART_PTR_LAZY_POINTER_TRAITS_HXX