// services/device/public/mojom/geolocation_internals.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_DEVICE_PUBLIC_MOJOM_GEOLOCATION_INTERNALS_MOJOM_TEST_UTILS_H_
#define SERVICES_DEVICE_PUBLIC_MOJOM_GEOLOCATION_INTERNALS_MOJOM_TEST_UTILS_H_

#include "services/device/public/mojom/geolocation_internals.mojom.h"


namespace device::mojom {


class  GeolocationInternalsObserverInterceptorForTesting : public GeolocationInternalsObserver {
  virtual GeolocationInternalsObserver* GetForwardingInterface() = 0;
  void OnDiagnosticsChanged(GeolocationDiagnosticsPtr diagnostics) override;
  void OnNetworkLocationRequested(std::vector<AccessPointDataPtr> access_point_data) override;
  void OnNetworkLocationReceived(NetworkLocationResponsePtr response) override;
};
class  GeolocationInternalsObserverAsyncWaiter {
 public:
  explicit GeolocationInternalsObserverAsyncWaiter(GeolocationInternalsObserver* proxy);

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

  ~GeolocationInternalsObserverAsyncWaiter();

 private:
  GeolocationInternalsObserver* const proxy_;
};


class  GeolocationInternalsInterceptorForTesting : public GeolocationInternals {
  virtual GeolocationInternals* GetForwardingInterface() = 0;
  void AddInternalsObserver(::mojo::PendingRemote<GeolocationInternalsObserver> observer, AddInternalsObserverCallback callback) override;
};
class  GeolocationInternalsAsyncWaiter {
 public:
  explicit GeolocationInternalsAsyncWaiter(GeolocationInternals* proxy);

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

  ~GeolocationInternalsAsyncWaiter();
  void AddInternalsObserver(
      ::mojo::PendingRemote<GeolocationInternalsObserver> observer, GeolocationDiagnosticsPtr* out_diagnostics);
  GeolocationDiagnosticsPtr AddInternalsObserver(::mojo::PendingRemote<GeolocationInternalsObserver> observer);

 private:
  GeolocationInternals* const proxy_;
};




}  // device::mojom

#endif  // SERVICES_DEVICE_PUBLIC_MOJOM_GEOLOCATION_INTERNALS_MOJOM_TEST_UTILS_H_