OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ | 5 #ifndef BASE_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ |
6 #define BASE_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ | 6 #define BASE_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ |
7 | 7 |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 } | 50 } |
51 | 51 |
52 return data_.insert(std::make_pair(key, data.release())).first; | 52 return data_.insert(std::make_pair(key, data.release())).first; |
53 } | 53 } |
54 | 54 |
55 // Does nothing if key is already present | 55 // Does nothing if key is already present |
56 std::pair<iterator, bool> add(const Key& key, ScopedPtr data) { | 56 std::pair<iterator, bool> add(const Key& key, ScopedPtr data) { |
57 std::pair<iterator, bool> result = | 57 std::pair<iterator, bool> result = |
58 data_.insert(std::make_pair(key, data.get())); | 58 data_.insert(std::make_pair(key, data.get())); |
59 if (result.second) | 59 if (result.second) |
60 ignore_result(data.release()); | 60 ::ignore_result(data.release()); |
61 return result; | 61 return result; |
62 } | 62 } |
63 | 63 |
64 void erase(iterator it) { | 64 void erase(iterator it) { |
65 // Let ScopedPtr decide how to delete. | 65 // Let ScopedPtr decide how to delete. |
66 ScopedPtr(it->second).reset(); | 66 ScopedPtr(it->second).reset(); |
67 data_.erase(it); | 67 data_.erase(it); |
68 } | 68 } |
69 | 69 |
70 size_t erase(const Key& k) { | 70 size_t erase(const Key& k) { |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 | 163 |
164 private: | 164 private: |
165 Container data_; | 165 Container data_; |
166 | 166 |
167 DISALLOW_COPY_AND_ASSIGN(ScopedPtrHashMap); | 167 DISALLOW_COPY_AND_ASSIGN(ScopedPtrHashMap); |
168 }; | 168 }; |
169 | 169 |
170 } // namespace base | 170 } // namespace base |
171 | 171 |
172 #endif // BASE_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ | 172 #endif // BASE_CONTAINERS_SCOPED_PTR_HASH_MAP_H_ |
OLD | NEW |