chromium/chromeos/ash/components/fwupd/histogram_util.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMEOS_ASH_COMPONENTS_FWUPD_HISTOGRAM_UTIL_H_
#define CHROMEOS_ASH_COMPONENTS_FWUPD_HISTOGRAM_UTIL_H_

#include <cstdint>
#include <string>

#include "ash/webui/firmware_update_ui/mojom/firmware_update.mojom.h"
#include "base/time/time.h"
#include "chromeos/ash/components/fwupd/firmware_update_manager.h"

namespace ash::firmware_update::metrics {

void EmitDeviceCount(int num_devices, bool is_startup);

void EmitUpdateCount(int num_updates,
                     int num_critical_updates,
                     bool is_startup);

void EmitInstallFailedWithStatus(FwupdStatus last_fwupd_status);
void EmitInstallResult(MethodResult result);
void EmitRefreshRemoteResult(MethodResult result);
void EmitDeviceRequest(firmware_update::mojom::DeviceRequestPtr request);
void EmitFailedDeviceRequestDuration(const base::TimeDelta& request_duration,
                                     mojom::DeviceRequestId request_id);
void EmitDeviceRequestSuccessfulWithDuration(
    const base::TimeDelta& request_duration,
    mojom::DeviceRequestId request_id);

std::string GetSourceStr(bool is_startup);
std::string GetRequestIdString(mojom::DeviceRequestId request_id);

}  // namespace ash::firmware_update::metrics

#endif  // CHROMEOS_ASH_COMPONENTS_FWUPD_HISTOGRAM_UTIL_H_