// services/audio/public/mojom/device_notifications.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 SERVICES_AUDIO_PUBLIC_MOJOM_DEVICE_NOTIFICATIONS_MOJOM_TEST_UTILS_H_
#define SERVICES_AUDIO_PUBLIC_MOJOM_DEVICE_NOTIFICATIONS_MOJOM_TEST_UTILS_H_

#include "services/audio/public/mojom/device_notifications.mojom.h"


namespace audio::mojom {


class  DeviceListenerInterceptorForTesting : public DeviceListener {
  virtual DeviceListener* GetForwardingInterface() = 0;
  void DevicesChanged() override;
};
class  DeviceListenerAsyncWaiter {
 public:
  explicit DeviceListenerAsyncWaiter(DeviceListener* proxy);

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

  ~DeviceListenerAsyncWaiter();

 private:
  DeviceListener* const proxy_;
};


class  DeviceNotifierInterceptorForTesting : public DeviceNotifier {
  virtual DeviceNotifier* GetForwardingInterface() = 0;
  void RegisterListener(::mojo::PendingRemote<DeviceListener> listener) override;
};
class  DeviceNotifierAsyncWaiter {
 public:
  explicit DeviceNotifierAsyncWaiter(DeviceNotifier* proxy);

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

  ~DeviceNotifierAsyncWaiter();

 private:
  DeviceNotifier* const proxy_;
};




}  // audio::mojom

#endif  // SERVICES_AUDIO_PUBLIC_MOJOM_DEVICE_NOTIFICATIONS_MOJOM_TEST_UTILS_H_