// Copyright 2018 The Chromium OS 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 DIAGNOSTICS_WILCO_DTC_SUPPORTD_BIND_UTILS_H_
#define DIAGNOSTICS_WILCO_DTC_SUPPORTD_BIND_UTILS_H_

#include <base/bind.h>
#include <base/callback.h>
#include <base/logging.h>

namespace diagnostics {

// Analog of base::BarrierClosure. TODO(emaxx, b/37434548): Remove this in
// favor of base::BarrierClosure once libchrome gets uprev'ed.
inline base::Closure BarrierClosure(int num_closures,
                                    const base::Closure& done_closure) {
  DCHECK_GT(num_closures, 0);
  return base::Bind(
      [](int* num_callbacks_left, base::Closure done_closure) {
        DCHECK_GT(*num_callbacks_left, 0);
        if (--*num_callbacks_left == 0)
          done_closure.Run();
      },
      base::Owned(new int(num_closures)), done_closure);
}

}  // namespace diagnostics

#endif  // DIAGNOSTICS_WILCO_DTC_SUPPORTD_BIND_UTILS_H_
