Index: content/renderer/media/tagged_list.h |
diff --git a/content/renderer/media/tagged_list.h b/content/renderer/media/tagged_list.h |
deleted file mode 100644 |
index b58772c0329770d1568e51f152c30d89f0bed70a..0000000000000000000000000000000000000000 |
--- a/content/renderer/media/tagged_list.h |
+++ /dev/null |
@@ -1,95 +0,0 @@ |
-// Copyright 2013 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 CONTENT_RENDERER_MEDIA_TAGGED_LIST_H_ |
-#define CONTENT_RENDERER_MEDIA_TAGGED_LIST_H_ |
- |
-#include <algorithm> |
-#include <list> |
- |
-#include "base/logging.h" |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
- |
-namespace content { |
- |
-// Implements the pattern of a list of items, where added items are |
-// tagged, you can tag all items, and you can retrieve the list of |
-// items that are tagged, which removes the tag. |
-// |
-// For thread safety, operations on this object should be under an |
-// external lock. An internally-locked version could be created, but |
-// is not needed at the moment as users already lock. |
-template <class ItemType> |
-class TaggedList { |
- public: |
- typedef std::list<scoped_refptr<ItemType> > ItemList; |
- |
- TaggedList() {} |
- |
- void AddAndTag(ItemType* item) { |
- items_.push_back(item); |
- tagged_items_.push_back(item); |
- } |
- |
- void TagAll() { |
- tagged_items_ = items_; |
- } |
- |
- const ItemList& Items() const { |
- return items_; |
- } |
- |
- // Retrieves the list of items with tags, and removes their tags. |
- // |
- // |dest| should be empty. |
- void RetrieveAndClearTags(ItemList* dest) { |
- DCHECK(dest->empty()); |
- dest->swap(tagged_items_); |
- } |
- |
- // Remove an item that matches a predicate. Will return a reference |
- // to it if it is found. |
- template <class UnaryPredicate> |
- scoped_refptr<ItemType> Remove(UnaryPredicate predicate) { |
- tagged_items_.remove_if(predicate); |
- |
- typename ItemList::iterator it = std::find_if( |
- items_.begin(), items_.end(), predicate); |
- if (it != items_.end()) { |
- scoped_refptr<ItemType> removed_item = *it; |
- items_.erase(it); |
- return removed_item; |
- } |
- |
- return NULL; |
- } |
- |
- template <class UnaryPredicate> |
- bool Contains(UnaryPredicate predicate) const { |
- return std::find_if(items_.begin(), items_.end(), predicate) != |
- items_.end(); |
- } |
- |
- void Clear() { |
- items_.clear(); |
- tagged_items_.clear(); |
- } |
- |
- bool IsEmpty() const { |
- bool is_empty = items_.empty(); |
- DCHECK(!is_empty || tagged_items_.empty()); |
- return is_empty; |
- } |
- |
- private: |
- ItemList items_; |
- ItemList tagged_items_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TaggedList); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_RENDERER_MEDIA_TAGGED_LIST_H_ |