Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Unified Diff: content/renderer/media/tagged_list.h

Issue 1834323002: MediaStream audio: Refactor 3 separate "glue" implementations into one. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: REBASE + Workaround to ensure MediaStreamAudioProcessor is destroyed on the main thread. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « content/renderer/media/speech_recognition_audio_sink_unittest.cc ('k') | content/renderer/media/user_media_client_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698