-// This file was GENERATED by command:
-// pump.py callback_helper.h.pump
-// DO NOT EDIT BY HAND!!!
-
-
// Copyright 2014 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.
template <typename>
struct RelayToTaskRunnerHelper;
-template <>
-struct RelayToTaskRunnerHelper<void()> {
- static void Run(CallbackHolder<void()>* holder) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback()));
- }
-};
-
-template <typename A1>
-struct RelayToTaskRunnerHelper<void(A1)> {
- static void Run(CallbackHolder<void(A1)>* holder, A1 a1) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1)));
- }
-};
-
-template <typename A1, typename A2>
-struct RelayToTaskRunnerHelper<void(A1, A2)> {
- static void Run(CallbackHolder<void(A1, A2)>* holder, A1 a1, A2 a2) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2)));
- }
-};
-
-template <typename A1, typename A2, typename A3>
-struct RelayToTaskRunnerHelper<void(A1, A2, A3)> {
- static void Run(CallbackHolder<void(A1, A2, A3)>* holder, A1 a1, A2 a2,
- A3 a3) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2), RebindForward(a3)));
- }
-};
-
-template <typename A1, typename A2, typename A3, typename A4>
-struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4)> {
- static void Run(CallbackHolder<void(A1, A2, A3, A4)>* holder, A1 a1, A2 a2,
- A3 a3, A4 a4) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2), RebindForward(a3), RebindForward(a4)));
- }
-};
-
-template <typename A1, typename A2, typename A3, typename A4, typename A5>
-struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5)> {
- static void Run(CallbackHolder<void(A1, A2, A3, A4, A5)>* holder, A1 a1,
- A2 a2, A3 a3, A4 a4, A5 a5) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2), RebindForward(a3), RebindForward(a4),
- RebindForward(a5)));
- }
-};
-
-template <typename A1, typename A2, typename A3, typename A4, typename A5,
- typename A6>
-struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5, A6)> {
- static void Run(CallbackHolder<void(A1, A2, A3, A4, A5, A6)>* holder, A1 a1,
- A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
- holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2), RebindForward(a3), RebindForward(a4),
- RebindForward(a5), RebindForward(a6)));
- }
-};
-
-template <typename A1, typename A2, typename A3, typename A4, typename A5,
- typename A6, typename A7>
-struct RelayToTaskRunnerHelper<void(A1, A2, A3, A4, A5, A6, A7)> {
- static void Run(CallbackHolder<void(A1, A2, A3, A4, A5, A6, A7)>* holder,
- A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
+template <typename... Args>
+struct RelayToTaskRunnerHelper<void(Args...)> {
+ static void Run(CallbackHolder<void(Args...)>* holder, Args... args) {
holder->task_runner()->PostTask(
- holder->from_here(), base::Bind(holder->callback(), RebindForward(a1),
- RebindForward(a2), RebindForward(a3), RebindForward(a4),
- RebindForward(a5), RebindForward(a6), RebindForward(a7)));
+ holder->from_here(),
+ base::Bind(holder->callback(),
+ RebindForward(args)...));
}
};