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

Unified Diff: components/task_scheduler_util/initialization/browser_util.h

Issue 2553953002: Split initialization_util into a Hermetic Library and a Variations Library (Closed)
Patch Set: Quick Adjustments Created 4 years 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: components/task_scheduler_util/initialization/browser_util.h
diff --git a/components/task_scheduler_util/initialization/browser_util.h b/components/task_scheduler_util/initialization/browser_util.h
new file mode 100644
index 0000000000000000000000000000000000000000..e2234686c865d583038ee9010033106b70c52e51
--- /dev/null
+++ b/components/task_scheduler_util/initialization/browser_util.h
@@ -0,0 +1,60 @@
+// Copyright 2016 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 COMPONENTS_TASK_SCHEDULER_UTIL_INITIALIZATION_BROWSER_UTIL_H_
+#define COMPONENTS_TASK_SCHEDULER_UTIL_INITIALIZATION_BROWSER_UTIL_H_
+
+#include <vector>
+
+#include "base/task_scheduler/scheduler_worker_pool_params.h"
+#include "base/time/time.h"
+
+namespace base {
+class TaskTraits;
+}
+
+namespace task_scheduler_util {
+namespace initialization {
+
+enum WorkerPoolType : size_t {
+ BACKGROUND = 0,
+ BACKGROUND_FILE_IO,
+ FOREGROUND,
+ FOREGROUND_FILE_IO,
+ WORKER_POOL_COUNT // Always last.
+};
+
+struct SingleWorkerPoolConfiguration {
+ base::SchedulerWorkerPoolParams::StandbyThreadPolicy standby_thread_policy;
+ int threads = 0;
+ base::TimeDelta detach_period;
+};
+
+struct BrowserWorkerPoolsConfiguration {
+ SingleWorkerPoolConfiguration background;
+ SingleWorkerPoolConfiguration background_file_io;
+ SingleWorkerPoolConfiguration foreground;
+ SingleWorkerPoolConfiguration foreground_file_io;
+};
+
+// Converts a BrowserWorkerPoolsConfiguration to a vector of
+// base::SchedulerWorkerPoolParams for consumption by task scheduler
+// initialization.
+std::vector<base::SchedulerWorkerPoolParams>
+BrowserWorkerPoolConfigurationToSchedulerWorkerPoolParams(
+ const BrowserWorkerPoolsConfiguration& config);
+
+// Maps |traits| to the index of a browser worker pool vector provided by
+// BrowserWorkerPoolConfigurationToSchedulerWorkerPoolParams() or
+// GetDefaultBrowserSchedulerWorkerPoolParams().
+size_t BrowserWorkerPoolIndexForTraits(const base::TaskTraits& traits);
+
+// Returns the default browser scheduler worker pool params.
+std::vector<base::SchedulerWorkerPoolParams>
+GetDefaultBrowserSchedulerWorkerPoolParams();
+
+} // namespace initialization
+} // namespace task_scheduler_util
+
+#endif // COMPONENTS_TASK_SCHEDULER_UTIL_INITIALIZATION_BROWSER_UTIL_H_

Powered by Google App Engine
This is Rietveld 408576698