| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BASE_MAC_SCOPED_NSOBJECT_H_ | 5 #ifndef BASE_MAC_SCOPED_NSOBJECT_H_ |
| 6 #define BASE_MAC_SCOPED_NSOBJECT_H_ | 6 #define BASE_MAC_SCOPED_NSOBJECT_H_ |
| 7 | 7 |
| 8 #include <type_traits> | 8 #include <type_traits> |
| 9 | 9 |
| 10 // Include NSObject.h directly because Foundation.h pulls in many dependencies. | 10 // Include NSObject.h directly because Foundation.h pulls in many dependencies. |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 #endif | 95 #endif |
| 96 | 96 |
| 97 scoped_nsprotocol(const scoped_nsprotocol<NST>& that) | 97 scoped_nsprotocol(const scoped_nsprotocol<NST>& that) |
| 98 : ScopedTypeRef<NST, Traits>(that) {} | 98 : ScopedTypeRef<NST, Traits>(that) {} |
| 99 | 99 |
| 100 template <typename NSR> | 100 template <typename NSR> |
| 101 explicit scoped_nsprotocol(const scoped_nsprotocol<NSR>& that_as_subclass) | 101 explicit scoped_nsprotocol(const scoped_nsprotocol<NSR>& that_as_subclass) |
| 102 : ScopedTypeRef<NST, Traits>(that_as_subclass) {} | 102 : ScopedTypeRef<NST, Traits>(that_as_subclass) {} |
| 103 | 103 |
| 104 scoped_nsprotocol(scoped_nsprotocol<NST>&& that) | 104 scoped_nsprotocol(scoped_nsprotocol<NST>&& that) |
| 105 : ScopedTypeRef<NST, Traits>(that) {} | 105 : ScopedTypeRef<NST, Traits>(std::move(that)) {} |
| 106 | 106 |
| 107 scoped_nsprotocol& operator=(const scoped_nsprotocol<NST>& that) { | 107 scoped_nsprotocol& operator=(const scoped_nsprotocol<NST>& that) { |
| 108 ScopedTypeRef<NST, Traits>::operator=(that); | 108 ScopedTypeRef<NST, Traits>::operator=(that); |
| 109 return *this; | 109 return *this; |
| 110 } | 110 } |
| 111 | 111 |
| 112 #if !defined(__has_feature) || !__has_feature(objc_arc) | 112 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 113 void reset(NST object = Traits::InvalidValue(), | 113 void reset(NST object = Traits::InvalidValue(), |
| 114 base::scoped_policy::OwnershipPolicy policy = | 114 base::scoped_policy::OwnershipPolicy policy = |
| 115 base::scoped_policy::ASSUME) { | 115 base::scoped_policy::ASSUME) { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 #endif | 159 #endif |
| 160 | 160 |
| 161 scoped_nsobject(const scoped_nsobject<NST>& that) | 161 scoped_nsobject(const scoped_nsobject<NST>& that) |
| 162 : scoped_nsprotocol<NST*>(that) {} | 162 : scoped_nsprotocol<NST*>(that) {} |
| 163 | 163 |
| 164 template <typename NSR> | 164 template <typename NSR> |
| 165 explicit scoped_nsobject(const scoped_nsobject<NSR>& that_as_subclass) | 165 explicit scoped_nsobject(const scoped_nsobject<NSR>& that_as_subclass) |
| 166 : scoped_nsprotocol<NST*>(that_as_subclass) {} | 166 : scoped_nsprotocol<NST*>(that_as_subclass) {} |
| 167 | 167 |
| 168 scoped_nsobject(scoped_nsobject<NST>&& that) | 168 scoped_nsobject(scoped_nsobject<NST>&& that) |
| 169 : scoped_nsprotocol<NST*>(that) {} | 169 : scoped_nsprotocol<NST*>(std::move(that)) {} |
| 170 | 170 |
| 171 scoped_nsobject& operator=(const scoped_nsobject<NST>& that) { | 171 scoped_nsobject& operator=(const scoped_nsobject<NST>& that) { |
| 172 scoped_nsprotocol<NST*>::operator=(that); | 172 scoped_nsprotocol<NST*>::operator=(that); |
| 173 return *this; | 173 return *this; |
| 174 } | 174 } |
| 175 | 175 |
| 176 #if !defined(__has_feature) || !__has_feature(objc_arc) | 176 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 177 void reset(NST* object = Traits::InvalidValue(), | 177 void reset(NST* object = Traits::InvalidValue(), |
| 178 base::scoped_policy::OwnershipPolicy policy = | 178 base::scoped_policy::OwnershipPolicy policy = |
| 179 base::scoped_policy::ASSUME) { | 179 base::scoped_policy::ASSUME) { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 207 : scoped_nsprotocol<id>(object) {} | 207 : scoped_nsprotocol<id>(object) {} |
| 208 #endif | 208 #endif |
| 209 | 209 |
| 210 scoped_nsobject(const scoped_nsobject<id>& that) | 210 scoped_nsobject(const scoped_nsobject<id>& that) |
| 211 : scoped_nsprotocol<id>(that) {} | 211 : scoped_nsprotocol<id>(that) {} |
| 212 | 212 |
| 213 template <typename NSR> | 213 template <typename NSR> |
| 214 explicit scoped_nsobject(const scoped_nsobject<NSR>& that_as_subclass) | 214 explicit scoped_nsobject(const scoped_nsobject<NSR>& that_as_subclass) |
| 215 : scoped_nsprotocol<id>(that_as_subclass) {} | 215 : scoped_nsprotocol<id>(that_as_subclass) {} |
| 216 | 216 |
| 217 scoped_nsobject(scoped_nsobject<id>&& that) : scoped_nsprotocol<id>(that) {} | 217 scoped_nsobject(scoped_nsobject<id>&& that) |
| 218 : scoped_nsprotocol<id>(std::move(that)) {} |
| 218 | 219 |
| 219 scoped_nsobject& operator=(const scoped_nsobject<id>& that) { | 220 scoped_nsobject& operator=(const scoped_nsobject<id>& that) { |
| 220 scoped_nsprotocol<id>::operator=(that); | 221 scoped_nsprotocol<id>::operator=(that); |
| 221 return *this; | 222 return *this; |
| 222 } | 223 } |
| 223 | 224 |
| 224 #if !defined(__has_feature) || !__has_feature(objc_arc) | 225 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 225 void reset(id object = Traits::InvalidValue(), | 226 void reset(id object = Traits::InvalidValue(), |
| 226 base::scoped_policy::OwnershipPolicy policy = | 227 base::scoped_policy::OwnershipPolicy policy = |
| 227 base::scoped_policy::ASSUME) { | 228 base::scoped_policy::ASSUME) { |
| 228 scoped_nsprotocol<id>::reset(object, policy); | 229 scoped_nsprotocol<id>::reset(object, policy); |
| 229 } | 230 } |
| 230 #else | 231 #else |
| 231 void reset(id object = Traits::InvalidValue()) { | 232 void reset(id object = Traits::InvalidValue()) { |
| 232 scoped_nsprotocol<id>::reset(object); | 233 scoped_nsprotocol<id>::reset(object); |
| 233 } | 234 } |
| 234 #endif | 235 #endif |
| 235 }; | 236 }; |
| 236 | 237 |
| 237 } // namespace base | 238 } // namespace base |
| 238 | 239 |
| 239 #endif // BASE_MAC_SCOPED_NSOBJECT_H_ | 240 #endif // BASE_MAC_SCOPED_NSOBJECT_H_ |
| OLD | NEW |