// media/mojo/mojom/watch_time_recorder.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_WATCH_TIME_RECORDER_MOJOM_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_WATCH_TIME_RECORDER_MOJOM_TEST_UTILS_H_

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


namespace media::mojom {


class  WatchTimeRecorderInterceptorForTesting : public WatchTimeRecorder {
  virtual WatchTimeRecorder* GetForwardingInterface() = 0;
  void RecordWatchTime(::media::WatchTimeKey key, ::base::TimeDelta watch_time) override;
  void FinalizeWatchTime(const std::vector<::media::WatchTimeKey>& watch_time_keys) override;
  void OnError(const ::media::PipelineStatus& status) override;
  void UpdateSecondaryProperties(SecondaryPlaybackPropertiesPtr secondary_properties) override;
  void SetAutoplayInitiated(bool value) override;
  void OnDurationChanged(::base::TimeDelta duration) override;
  void UpdateVideoDecodeStats(uint32_t frames_decoded, uint32_t frames_dropped) override;
  void UpdateUnderflowCount(int32_t total_count) override;
  void UpdateUnderflowDuration(int32_t total_completed_count, ::base::TimeDelta total_duration) override;
};
class  WatchTimeRecorderAsyncWaiter {
 public:
  explicit WatchTimeRecorderAsyncWaiter(WatchTimeRecorder* proxy);

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

  ~WatchTimeRecorderAsyncWaiter();

 private:
  WatchTimeRecorder* const proxy_;
};




}  // media::mojom

#endif  // MEDIA_MOJO_MOJOM_WATCH_TIME_RECORDER_MOJOM_TEST_UTILS_H_