Index: mojo/public/cpp/bindings/lib/iterator_util.h |
diff --git a/mojo/public/cpp/bindings/lib/iterator_util.h b/mojo/public/cpp/bindings/lib/iterator_util.h |
deleted file mode 100644 |
index 7b990b3a2324da1d9ffbff1aface715b7623dfd3..0000000000000000000000000000000000000000 |
--- a/mojo/public/cpp/bindings/lib/iterator_util.h |
+++ /dev/null |
@@ -1,129 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_ITERATOR_UTIL_H_ |
-#define MOJO_PUBLIC_CPP_BINDINGS_LIB_ITERATOR_UTIL_H_ |
- |
-#include <algorithm> |
- |
-#include "mojo/public/cpp/bindings/array.h" |
-#include "mojo/public/cpp/bindings/map.h" |
-#include "mojo/public/cpp/environment/logging.h" |
- |
-namespace mojo { |
-namespace internal { |
- |
-// |MapKeyIterator| and |MapValueIterator| are templated interfaces for |
-// iterating over a Map<>'s keys and its values, respectively. They provide a |
-// begin() and end() for generating an STL-iterator. The generated Iterator |
-// follows the BidirectionalIterator concept |
-// (http://en.cppreference.com/w/cpp/concept/BidirectionalIterator). |
-// |
-// Example usage: |
-// |
-// Map<int,int> my_map; |
-// my_map[1] = 2; |
-// my_map[3] = 4; |
-// my_map[5] = 6; |
-// for (int key : MapKeyIterator<int,int>(&my_map)) { |
-// std::cout << key << std::endl; |
-// } |
-// for (int val : MapValueIterator<int,int>(&my_map)) { |
-// std::cout << val << std::endl; |
-// } |
- |
-// Interface for iterating over a Map<K, V>'s keys. |
-// To construct a |MapKeyIterator|, pass in a non-null pointer to a Map<K, V>; |
-template <typename K, typename V> |
-class MapKeyIterator { |
- public: |
- class Iterator { |
- public: |
- Iterator() : it_() {} |
- explicit Iterator(typename Map<K, V>::MapIterator it) : it_(it) {} |
- Iterator& operator++() { |
- ++it_; |
- return *this; |
- } |
- Iterator operator++(int) { |
- Iterator original = *this; |
- ++it_; |
- return original; |
- } |
- Iterator& operator--() { |
- --it_; |
- return *this; |
- } |
- Iterator operator--(int) { |
- Iterator original = *this; |
- --it_; |
- return original; |
- } |
- bool operator==(const Iterator& o) const { return o.it_ == it_; } |
- bool operator!=(const Iterator& o) const { return o.it_ != it_; } |
- const K& operator*() { return it_.GetKey(); } |
- const K* operator->() { return &it_.GetKey(); } |
- |
- private: |
- typename Map<K, V>::MapIterator it_; |
- }; |
- |
- explicit MapKeyIterator(Map<K, V>* map) : map_(map) { MOJO_DCHECK(map); } |
- |
- size_t size() const { return map_->size(); } |
- Iterator begin() const { return Iterator{map_->begin()}; } |
- Iterator end() const { return Iterator{map_->end()}; } |
- |
- private: |
- Map<K, V>* const map_; |
-}; |
- |
-// Interface for iterating over a Map<K, V>'s values. |
-template <typename K, typename V> |
-class MapValueIterator { |
- public: |
- class Iterator { |
- public: |
- Iterator() : it_(typename Map<K, V>::MapIterator()) {} |
- explicit Iterator(typename Map<K, V>::MapIterator it) : it_(it) {} |
- Iterator& operator++() { |
- ++it_; |
- return *this; |
- } |
- Iterator operator++(int) { |
- Iterator original = *this; |
- ++it_; |
- return original; |
- } |
- Iterator& operator--() { |
- --it_; |
- return *this; |
- } |
- Iterator operator--(int) { |
- Iterator original = *this; |
- --it_; |
- return original; |
- } |
- bool operator==(const Iterator& o) const { return o.it_ == it_; } |
- bool operator!=(const Iterator& o) const { return o.it_ != it_; } |
- V& operator*() { return it_.GetValue(); } |
- V* operator->() { return &it_.GetValue(); } |
- |
- private: |
- typename Map<K, V>::MapIterator it_; |
- }; |
- |
- explicit MapValueIterator(Map<K, V>* map) : map_(map) { MOJO_DCHECK(map); } |
- size_t size() const { return map_->size(); } |
- Iterator begin() const { return Iterator{map_->begin()}; } |
- Iterator end() const { return Iterator{map_->end()}; } |
- |
- private: |
- Map<K, V>* const map_; |
-}; |
- |
-} // namespace internal |
-} // namespace mojo |
- |
-#endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_ITERATOR_UTIL_H_ |