// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_SCHEDULER_BROWSER_TASK_QUEUES_H_ #define CONTENT_BROWSER_SCHEDULER_BROWSER_TASK_QUEUES_H_ #include <array> #include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/task/sequence_manager/task_queue.h" #include "base/task/single_thread_task_runner.h" #include "content/common/content_export.h" #include "content/public/browser/browser_thread.h" namespace base { namespace sequence_manager { class SequenceManager; } // namespace sequence_manager } // namespace base namespace content { // Common task queues for browser threads. This class holds all the queues // needed by browser threads. This makes it easy for all browser threads to have // the same queues. Thic class also provides a Handler to act on the queues from // any thread. // // Instances must be created and destroyed on the same thread as the // underlying SequenceManager and instances are not allowed to outlive this // SequenceManager. All methods of this class must be called from the // associated thread unless noted otherwise. If you need to perform operations // from a different thread use a Handle instance instead. // // Attention: All queues are initially disabled, that is, tasks will not be run // for them. class CONTENT_EXPORT BrowserTaskQueues { … }; } // namespace content #endif // CONTENT_BROWSER_SCHEDULER_BROWSER_TASK_QUEUES_H_