blob: 9230300f4a035c8a7e2cc98ba860793cae13dcb9 [file] [log] [blame]
/*
* Copyright 2019 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 CAMERA_COMMON_CAMERA_METRICS_IMPL_H_
#define CAMERA_COMMON_CAMERA_METRICS_IMPL_H_
#include <memory>
#include <base/time/time.h>
#include <base/process/process_metrics.h>
#include <cros-camera/camera_metrics.h>
#include <metrics/metrics_library.h>
namespace cros {
// Implementation of Camera Metrics.
class CameraMetricsImpl : public CameraMetrics {
public:
CameraMetricsImpl();
~CameraMetricsImpl() override;
void SetMetricsLibraryForTesting(
std::unique_ptr<MetricsLibraryInterface> metrics_lib);
void SendJpegProcessLatency(JpegProcessType process_type,
JpegProcessMethod process_layer,
base::TimeDelta latency) override;
void SendJpegResolution(JpegProcessType process_type,
JpegProcessMethod process_layer,
int width,
int height) override;
void SendConfigureStreamResolution(int width,
int height,
int format) override;
void SendConfigureStreamsLatency(base::TimeDelta latency) override;
void SendOpenDeviceLatency(base::TimeDelta latency) override;
void SendError(int error_code) override;
void SendCameraFacing(int facing) override;
void SendSessionDuration(base::TimeDelta duration) override;
private:
std::unique_ptr<MetricsLibraryInterface> metrics_lib_;
};
} // namespace cros
#endif // CAMERA_COMMON_CAMERA_METRICS_IMPL_H_