diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-10-29 10:08:30 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-10-29 10:08:30 +0200 |
commit | a474f75b6bea51ecd5c3a870696dd575e25b0bc6 (patch) | |
tree | 8ac09f7f0c5d944fc7562c3fbb07ae9e0848066f /odb/tr1 | |
parent | 1a0c6d83149149c36c228cb5515ea51feac24742 (diff) |
Add static multi-database support for lazy pointers
A lazy pointer must load the object using the static database interface
with which it was initialized.
Diffstat (limited to 'odb/tr1')
-rw-r--r-- | odb/tr1/lazy-ptr.hxx | 36 | ||||
-rw-r--r-- | odb/tr1/lazy-ptr.ixx | 86 |
2 files changed, 61 insertions, 61 deletions
diff --git a/odb/tr1/lazy-ptr.hxx b/odb/tr1/lazy-ptr.hxx index 01a7b36..85b43bf 100644 --- a/odb/tr1/lazy-ptr.hxx +++ b/odb/tr1/lazy-ptr.hxx @@ -98,18 +98,18 @@ namespace odb // void unload () const; - template <class ID> lazy_shared_ptr (database_type&, const ID&); - template <class Y> lazy_shared_ptr (database_type&, Y*); - template <class Y, class D> lazy_shared_ptr (database_type&, Y*, D); - template <class Y> lazy_shared_ptr (database_type&, std::auto_ptr<Y>&); - template <class Y> lazy_shared_ptr (database_type&, const std::tr1::shared_ptr<Y>&); - template <class Y> lazy_shared_ptr (database_type&, const std::tr1::weak_ptr<Y>&); - - template <class ID> void reset (database_type&, const ID&); - template <class Y> void reset (database_type&, Y*); - template <class Y, class D> void reset (database_type&, Y*, D); - template <class Y> void reset (database_type&, std::auto_ptr<Y>&); - template <class Y> void reset (database_type&, const std::tr1::shared_ptr<Y>&); + template <class DB, class ID> lazy_shared_ptr (DB&, const ID&); + template <class DB, class Y> lazy_shared_ptr (DB&, Y*); + template <class DB, class Y, class D> lazy_shared_ptr (DB&, Y*, D); + template <class DB, class Y> lazy_shared_ptr (DB&, std::auto_ptr<Y>&); + template <class DB, class Y> lazy_shared_ptr (DB&, const std::tr1::shared_ptr<Y>&); + template <class DB, class Y> lazy_shared_ptr (DB&, const std::tr1::weak_ptr<Y>&); + + template <class DB, class ID> void reset (DB&, const ID&); + template <class DB, class Y> void reset (DB&, Y*); + template <class DB, class Y, class D> void reset (DB&, Y*, D); + template <class DB, class Y> void reset (DB&, std::auto_ptr<Y>&); + template <class DB, class Y> void reset (DB&, const std::tr1::shared_ptr<Y>&); #ifdef ODB_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGUMENT template <class O = T> @@ -207,13 +207,13 @@ namespace odb // void unload () const; - template <class ID> lazy_weak_ptr (database_type&, const ID&); - template <class Y> lazy_weak_ptr (database_type&, const std::tr1::shared_ptr<Y>&); - template <class Y> lazy_weak_ptr (database_type&, const std::tr1::weak_ptr<Y>&); + template <class DB, class ID> lazy_weak_ptr (DB&, const ID&); + template <class DB, class Y> lazy_weak_ptr (DB&, const std::tr1::shared_ptr<Y>&); + template <class DB, class Y> lazy_weak_ptr (DB&, const std::tr1::weak_ptr<Y>&); - template <class ID> void reset (database_type&, const ID&); - template <class Y> void reset (database_type&, const std::tr1::shared_ptr<Y>&); - template <class Y> void reset (database_type&, const std::tr1::weak_ptr<Y>&); + template <class DB, class ID> void reset (DB&, const ID&); + template <class DB, class Y> void reset (DB&, const std::tr1::shared_ptr<Y>&); + template <class DB, class Y> void reset (DB&, const std::tr1::weak_ptr<Y>&); // The object_id() function can only be called when the object is // persistent, or: expired() XOR loaded() (can use != for XOR). diff --git a/odb/tr1/lazy-ptr.ixx b/odb/tr1/lazy-ptr.ixx index a29eaad..ad2d659 100644 --- a/odb/tr1/lazy-ptr.ixx +++ b/odb/tr1/lazy-ptr.ixx @@ -207,117 +207,117 @@ namespace odb } template <class T> - template <class ID> + template <class DB, class ID> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, const ID& id): i_ (db, id) {} + lazy_shared_ptr (DB& db, const ID& id): i_ (db, id) {} template <class T> - template <class Y> + template <class DB, class Y> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, Y* p) + lazy_shared_ptr (DB& db, Y* p) : p_ (p) { if (p_) - i_.reset (db); + i_.reset_db (db); } template <class T> - template <class Y, class D> + template <class DB, class Y, class D> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, Y* p, D d) + lazy_shared_ptr (DB& db, Y* p, D d) : p_ (p, d) { if (p_) - i_.reset (db); + i_.reset_db (db); } template <class T> - template <class Y> + template <class DB, class Y> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, std::auto_ptr<Y>& r) + lazy_shared_ptr (DB& db, std::auto_ptr<Y>& r) : p_ (r) { if (p_) - i_.reset (db); + i_.reset_db (db); } template <class T> - template <class Y> + template <class DB, class Y> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, const std::tr1::shared_ptr<Y>& r) + lazy_shared_ptr (DB& db, const std::tr1::shared_ptr<Y>& r) : p_ (r) { if (p_) - i_.reset (db); + i_.reset_db (db); } template <class T> - template <class Y> + template <class DB, class Y> inline lazy_shared_ptr<T>:: - lazy_shared_ptr (database_type& db, const std::tr1::weak_ptr<Y>& r) + lazy_shared_ptr (DB& db, const std::tr1::weak_ptr<Y>& r) : p_ (r) { if (p_) - i_.reset (db); + i_.reset_db (db); } template <class T> - template <class ID> + template <class DB, class ID> inline void lazy_shared_ptr<T>:: - reset (database_type& db, const ID& id) + reset (DB& db, const ID& id) { p_.reset (); i_.reset (db, id); } template <class T> - template <class Y> + template <class DB, class Y> inline void lazy_shared_ptr<T>:: - reset (database_type& db, Y* p) + reset (DB& db, Y* p) { p_.reset (p); if (p_) - i_.reset (db); + i_.reset_db (db); else i_.reset (); } template <class T> - template <class Y, class D> + template <class DB, class Y, class D> inline void lazy_shared_ptr<T>:: - reset (database_type& db, Y* p, D d) + reset (DB& db, Y* p, D d) { p_.reset (p, d); if (p_) - i_.reset (db); + i_.reset_db (db); else i_.reset (); } template <class T> - template <class Y> + template <class DB, class Y> inline void lazy_shared_ptr<T>:: - reset (database_type& db, std::auto_ptr<Y>& r) + reset (DB& db, std::auto_ptr<Y>& r) { p_ = r; if (p_) - i_.reset (db); + i_.reset_db (db); else i_.reset (); } template <class T> - template <class Y> + template <class DB, class Y> inline void lazy_shared_ptr<T>:: - reset (database_type& db, const std::tr1::shared_ptr<Y>& r) + reset (DB& db, const std::tr1::shared_ptr<Y>& r) { p_ = r; if (p_) - i_.reset (db); + i_.reset_db (db); else i_.reset (); } @@ -517,14 +517,14 @@ namespace odb } template <class T> - template <class ID> + template <class DB, class ID> inline lazy_weak_ptr<T>:: - lazy_weak_ptr (database_type& db, const ID& id): i_ (db, id) {} + lazy_weak_ptr (DB& db, const ID& id): i_ (db, id) {} template <class T> - template <class Y> + template <class DB, class Y> inline lazy_weak_ptr<T>:: - lazy_weak_ptr (database_type& db, const std::tr1::shared_ptr<Y>& r) + lazy_weak_ptr (DB& db, const std::tr1::shared_ptr<Y>& r) : p_ (r) { typedef typename object_traits<T>::object_type object_type; @@ -534,9 +534,9 @@ namespace odb } template <class T> - template <class Y> + template <class DB, class Y> inline lazy_weak_ptr<T>:: - lazy_weak_ptr (database_type& db, const std::tr1::weak_ptr<Y>& r) + lazy_weak_ptr (DB& db, const std::tr1::weak_ptr<Y>& r) : p_ (r) { typedef typename object_traits<T>::object_type object_type; @@ -548,18 +548,18 @@ namespace odb } template <class T> - template <class ID> + template <class DB, class ID> inline void lazy_weak_ptr<T>:: - reset (database_type& db, const ID& id) + reset (DB& db, const ID& id) { p_.reset (); i_.reset (db, id); } template <class T> - template <class Y> + template <class DB, class Y> inline void lazy_weak_ptr<T>:: - reset (database_type& db, const std::tr1::shared_ptr<Y>& r) + reset (DB& db, const std::tr1::shared_ptr<Y>& r) { typedef typename object_traits<T>::object_type object_type; @@ -572,9 +572,9 @@ namespace odb } template <class T> - template <class Y> + template <class DB, class Y> inline void lazy_weak_ptr<T>:: - reset (database_type& db, const std::tr1::weak_ptr<Y>& r) + reset (DB& db, const std::tr1::weak_ptr<Y>& r) { typedef typename object_traits<T>::object_type object_type; |