// content/browser/xr/webxr_internals/mojom/webxr_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 CONTENT_BROWSER_XR_WEBXR_INTERNALS_MOJOM_WEBXR_INTERNALS_MOJOM_TEST_UTILS_H_
#define CONTENT_BROWSER_XR_WEBXR_INTERNALS_MOJOM_WEBXR_INTERNALS_MOJOM_TEST_UTILS_H_

#include "content/browser/xr/webxr_internals/mojom/webxr_internals.mojom.h"


namespace webxr::mojom {


class  WebXrInternalsHandlerInterceptorForTesting : public WebXrInternalsHandler {
  virtual WebXrInternalsHandler* GetForwardingInterface() = 0;
  void GetDeviceInfo(GetDeviceInfoCallback callback) override;
  void GetActiveRuntimes(GetActiveRuntimesCallback callback) override;
  void SubscribeToEvents(::mojo::PendingRemote<XRInternalsSessionListener> listener) override;
};
class  WebXrInternalsHandlerAsyncWaiter {
 public:
  explicit WebXrInternalsHandlerAsyncWaiter(WebXrInternalsHandler* proxy);

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

  ~WebXrInternalsHandlerAsyncWaiter();
  void GetDeviceInfo(
      DeviceInfoPtr* out_device_info);
  DeviceInfoPtr GetDeviceInfo();
  void GetActiveRuntimes(
      std::vector<RuntimeInfoPtr>* out_active_runtimes);
  std::vector<RuntimeInfoPtr> GetActiveRuntimes();

 private:
  WebXrInternalsHandler* const proxy_;
};


class  XRInternalsSessionListenerInterceptorForTesting : public XRInternalsSessionListener {
  virtual XRInternalsSessionListener* GetForwardingInterface() = 0;
  void LogXrSessionRequested(SessionRequestedRecordPtr session_requested_record) override;
  void LogXrSessionRejected(SessionRejectedRecordPtr session_rejected_record) override;
  void LogXrSessionStarted(SessionStartedRecordPtr session_started_record) override;
  void LogXrSessionStopped(SessionStoppedRecordPtr session_stopped_record) override;
  void LogXrRuntimeAdded(RuntimeInfoPtr runtime_added_record) override;
  void LogXrRuntimeRemoved(::device::mojom::XRDeviceId device_id) override;
  void LogFrameData(::device::mojom::XrFrameStatisticsPtr xrframe_statistics) override;
  void LogConsoleMessages(::device::mojom::XrLogMessagePtr xrlogging_statistics) override;
};
class  XRInternalsSessionListenerAsyncWaiter {
 public:
  explicit XRInternalsSessionListenerAsyncWaiter(XRInternalsSessionListener* proxy);

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

  ~XRInternalsSessionListenerAsyncWaiter();

 private:
  XRInternalsSessionListener* const proxy_;
};




}  // webxr::mojom

#endif  // CONTENT_BROWSER_XR_WEBXR_INTERNALS_MOJOM_WEBXR_INTERNALS_MOJOM_TEST_UTILS_H_