diff options
author | Yehuda Sadeh <yehuda.sadeh@dreamhost.com> | 2011-12-05 13:44:13 -0800 |
---|---|---|
committer | Yehuda Sadeh <yehuda.sadeh@dreamhost.com> | 2011-12-05 13:44:13 -0800 |
commit | f4e1d549578776325099cf9c0eae6c5dd73b9e6d (patch) | |
tree | f9f20b616cbb8637c08ab5610d0d1b0e2f6f88f9 | |
parent | 94d094e1afd397f0da40272cfd36c0e7244e0f1c (diff) | |
download | ceph-f4e1d549578776325099cf9c0eae6c5dd73b9e6d.tar.gz |
rgw: ObjRef template doesn't need two types
-rw-r--r-- | src/rgw/libradosgw.cc | 6 | ||||
-rw-r--r-- | src/rgw/libradosgw.hpp | 20 |
2 files changed, 10 insertions, 16 deletions
diff --git a/src/rgw/libradosgw.cc b/src/rgw/libradosgw.cc index b069ea744da..4881b07aa09 100644 --- a/src/rgw/libradosgw.cc +++ b/src/rgw/libradosgw.cc @@ -376,10 +376,4 @@ namespace libradosgw { return ret; } - - Account::~Account() { - if (impl) - impl->put(); - } - } diff --git a/src/rgw/libradosgw.hpp b/src/rgw/libradosgw.hpp index 3a8205785e9..fceddf108ff 100644 --- a/src/rgw/libradosgw.hpp +++ b/src/rgw/libradosgw.hpp @@ -25,13 +25,13 @@ namespace libradosgw { }; - template <class T, class S> + template <class T> class ObjRef { - T *obj; + RefCountedObject *obj; public: - ObjRef(T *o = NULL) : obj(o) {} + ObjRef(RefCountedObject *o = NULL) : obj(o) {} - ObjRef(ObjRef<T, S>& src) { + ObjRef(ObjRef<T>& src) { obj = src; if (obj) obj->get(); @@ -42,7 +42,7 @@ namespace libradosgw { obj->put(); } - ObjRef<T, S>& operator=(ObjRef<T, S> &src) { + ObjRef<T>& operator=(ObjRef<T> &src) { if (this == &src) return *this; @@ -56,7 +56,7 @@ namespace libradosgw { return *this; } - T *operator=(T *o) { + RefCountedObject *operator=(RefCountedObject *o) { if (obj) obj->put(); @@ -64,8 +64,8 @@ namespace libradosgw { return obj; } - S *operator->() { - return obj; + T *operator->() { + return (T *)obj; } }; @@ -256,7 +256,7 @@ namespace libradosgw { friend class StoreImpl; protected: - ObjRef<RefCountedObject, AccountImpl> impl; + ObjRef<AccountImpl> impl; User user; std::map<string, AccessKey> access_keys; @@ -280,7 +280,7 @@ namespace libradosgw { class Store { protected: - ObjRef<RefCountedObject, StoreImpl> impl; + ObjRef<StoreImpl> impl; public: Store() : impl(NULL) {} |