// media/mojo/mojom/webrtc_video_perf.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef MEDIA_MOJO_MOJOM_WEBRTC_VIDEO_PERF_MOJOM_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_WEBRTC_VIDEO_PERF_MOJOM_TEST_UTILS_H_

#include "media/mojo/mojom/webrtc_video_perf.mojom.h"


namespace media::mojom {


class  WebrtcVideoPerfRecorderInterceptorForTesting : public WebrtcVideoPerfRecorder {
  virtual WebrtcVideoPerfRecorder* GetForwardingInterface() = 0;
  void UpdateRecord(WebrtcPredictionFeaturesPtr features, WebrtcVideoStatsPtr video_stats) override;
};
class  WebrtcVideoPerfRecorderAsyncWaiter {
 public:
  explicit WebrtcVideoPerfRecorderAsyncWaiter(WebrtcVideoPerfRecorder* proxy);

  WebrtcVideoPerfRecorderAsyncWaiter(const WebrtcVideoPerfRecorderAsyncWaiter&) = delete;
  WebrtcVideoPerfRecorderAsyncWaiter& operator=(const WebrtcVideoPerfRecorderAsyncWaiter&) = delete;

  ~WebrtcVideoPerfRecorderAsyncWaiter();

 private:
  WebrtcVideoPerfRecorder* const proxy_;
};


class  WebrtcVideoPerfHistoryInterceptorForTesting : public WebrtcVideoPerfHistory {
  virtual WebrtcVideoPerfHistory* GetForwardingInterface() = 0;
  void GetPerfInfo(WebrtcPredictionFeaturesPtr features, int32_t frames_per_second, GetPerfInfoCallback callback) override;
};
class  WebrtcVideoPerfHistoryAsyncWaiter {
 public:
  explicit WebrtcVideoPerfHistoryAsyncWaiter(WebrtcVideoPerfHistory* proxy);

  WebrtcVideoPerfHistoryAsyncWaiter(const WebrtcVideoPerfHistoryAsyncWaiter&) = delete;
  WebrtcVideoPerfHistoryAsyncWaiter& operator=(const WebrtcVideoPerfHistoryAsyncWaiter&) = delete;

  ~WebrtcVideoPerfHistoryAsyncWaiter();
  void GetPerfInfo(
      WebrtcPredictionFeaturesPtr features, int32_t frames_per_second, bool* out_is_smooth);
  bool GetPerfInfo(WebrtcPredictionFeaturesPtr features, int32_t frames_per_second);

 private:
  WebrtcVideoPerfHistory* const proxy_;
};




}  // media::mojom

#endif  // MEDIA_MOJO_MOJOM_WEBRTC_VIDEO_PERF_MOJOM_TEST_UTILS_H_