// media/mojo/mojom/android_overlay.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_ANDROID_OVERLAY_MOJOM_TEST_UTILS_H_
#define MEDIA_MOJO_MOJOM_ANDROID_OVERLAY_MOJOM_TEST_UTILS_H_

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


namespace media::mojom {


class  AndroidOverlayProviderInterceptorForTesting : public AndroidOverlayProvider {
  virtual AndroidOverlayProvider* GetForwardingInterface() = 0;
  void CreateOverlay(::mojo::PendingReceiver<AndroidOverlay> overlay, ::mojo::PendingRemote<AndroidOverlayClient> client, AndroidOverlayConfigPtr config) override;
};
class  AndroidOverlayProviderAsyncWaiter {
 public:
  explicit AndroidOverlayProviderAsyncWaiter(AndroidOverlayProvider* proxy);

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

  ~AndroidOverlayProviderAsyncWaiter();

 private:
  AndroidOverlayProvider* const proxy_;
};


class  AndroidOverlayInterceptorForTesting : public AndroidOverlay {
  virtual AndroidOverlay* GetForwardingInterface() = 0;
  void ScheduleLayout(const ::gfx::Rect& rect) override;
};
class  AndroidOverlayAsyncWaiter {
 public:
  explicit AndroidOverlayAsyncWaiter(AndroidOverlay* proxy);

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

  ~AndroidOverlayAsyncWaiter();

 private:
  AndroidOverlay* const proxy_;
};


class  AndroidOverlayClientInterceptorForTesting : public AndroidOverlayClient {
  virtual AndroidOverlayClient* GetForwardingInterface() = 0;
  void OnSurfaceReady(uint64_t surface_key) override;
  void OnDestroyed() override;
  void OnSynchronouslyDestroyed(OnSynchronouslyDestroyedCallback callback) override;
  void OnPowerEfficientState(bool is_power_efficient) override;
};
class  AndroidOverlayClientAsyncWaiter {
 public:
  explicit AndroidOverlayClientAsyncWaiter(AndroidOverlayClient* proxy);

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

  ~AndroidOverlayClientAsyncWaiter();
  void OnSynchronouslyDestroyed(
      );
  

 private:
  AndroidOverlayClient* const proxy_;
};




}  // media::mojom

#endif  // MEDIA_MOJO_MOJOM_ANDROID_OVERLAY_MOJOM_TEST_UTILS_H_