// services/accessibility/public/mojom/automation.mojom-params-data.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_ACCESSIBILITY_PUBLIC_MOJOM_AUTOMATION_MOJOM_PARAMS_DATA_H_
#define SERVICES_ACCESSIBILITY_PUBLIC_MOJOM_AUTOMATION_MOJOM_PARAMS_DATA_H_
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif

namespace mojo::internal {
class ValidationContext;
}


namespace ax::mojom {
namespace internal {
class  Automation_DispatchTreeDestroyedEvent_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::ax::mojom::internal::AXTreeID_Data tree_id;

 private:
  friend class mojo::internal::MessageFragment<Automation_DispatchTreeDestroyedEvent_Params_Data>;

  Automation_DispatchTreeDestroyedEvent_Params_Data();
  ~Automation_DispatchTreeDestroyedEvent_Params_Data() = delete;
};
static_assert(sizeof(Automation_DispatchTreeDestroyedEvent_Params_Data) == 24,
              "Bad sizeof(Automation_DispatchTreeDestroyedEvent_Params_Data)");
class  Automation_DispatchActionResult_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  mojo::internal::Pointer<::ax::mojom::internal::AXActionData_Data> data;
  uint8_t result : 1;
  uint8_t padfinal_[7];

 private:
  friend class mojo::internal::MessageFragment<Automation_DispatchActionResult_Params_Data>;

  Automation_DispatchActionResult_Params_Data();
  ~Automation_DispatchActionResult_Params_Data() = delete;
};
static_assert(sizeof(Automation_DispatchActionResult_Params_Data) == 24,
              "Bad sizeof(Automation_DispatchActionResult_Params_Data)");
class  Automation_DispatchAccessibilityEvents_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::ax::mojom::internal::AXTreeID_Data tree_id;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::ax::mojom::internal::AXTreeUpdate_Data>>> updates;
  mojo::internal::Pointer<::gfx::mojom::internal::Point_Data> mouse_location;
  mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::ax::mojom::internal::AXEvent_Data>>> events;

 private:
  friend class mojo::internal::MessageFragment<Automation_DispatchAccessibilityEvents_Params_Data>;

  Automation_DispatchAccessibilityEvents_Params_Data();
  ~Automation_DispatchAccessibilityEvents_Params_Data() = delete;
};
static_assert(sizeof(Automation_DispatchAccessibilityEvents_Params_Data) == 48,
              "Bad sizeof(Automation_DispatchAccessibilityEvents_Params_Data)");
class  Automation_DispatchAccessibilityLocationChange_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::ax::mojom::internal::AXTreeID_Data tree_id;
  int32_t node_id;
  uint8_t pad1_[4];
  mojo::internal::Pointer<::ax::mojom::internal::AXRelativeBounds_Data> bounds;

 private:
  friend class mojo::internal::MessageFragment<Automation_DispatchAccessibilityLocationChange_Params_Data>;

  Automation_DispatchAccessibilityLocationChange_Params_Data();
  ~Automation_DispatchAccessibilityLocationChange_Params_Data() = delete;
};
static_assert(sizeof(Automation_DispatchAccessibilityLocationChange_Params_Data) == 40,
              "Bad sizeof(Automation_DispatchAccessibilityLocationChange_Params_Data)");
class  Automation_DispatchAccessibilityScrollChange_Params_Data {
 public:
  static bool Validate(const void* data,
                       mojo::internal::ValidationContext* validation_context);

  mojo::internal::StructHeader header_;
  ::ax::mojom::internal::AXTreeID_Data tree_id;
  int32_t node_id;
  int32_t scroll_x;
  int32_t scroll_y;
  uint8_t padfinal_[4];

 private:
  friend class mojo::internal::MessageFragment<Automation_DispatchAccessibilityScrollChange_Params_Data>;

  Automation_DispatchAccessibilityScrollChange_Params_Data();
  ~Automation_DispatchAccessibilityScrollChange_Params_Data() = delete;
};
static_assert(sizeof(Automation_DispatchAccessibilityScrollChange_Params_Data) == 40,
              "Bad sizeof(Automation_DispatchAccessibilityScrollChange_Params_Data)");

}  // namespace internal


class Automation_DispatchTreeDestroyedEvent_ParamsDataView {
 public:
  Automation_DispatchTreeDestroyedEvent_ParamsDataView() = default;

  Automation_DispatchTreeDestroyedEvent_ParamsDataView(
      internal::Automation_DispatchTreeDestroyedEvent_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetTreeIdDataView(
      ::ax::mojom::AXTreeIDDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadTreeId(UserType* output) {
    
    auto* pointer = !data_->tree_id.is_null() ? &data_->tree_id : nullptr;
    return mojo::internal::Deserialize<::ax::mojom::AXTreeIDDataView>(
        pointer, output, message_);
  }
 private:
  internal::Automation_DispatchTreeDestroyedEvent_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class Automation_DispatchActionResult_ParamsDataView {
 public:
  Automation_DispatchActionResult_ParamsDataView() = default;

  Automation_DispatchActionResult_ParamsDataView(
      internal::Automation_DispatchActionResult_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetDataDataView(
      ::ax::mojom::AXActionDataDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadData(UserType* output) {
    
    auto* pointer = data_->data.Get();
    return mojo::internal::Deserialize<::ax::mojom::AXActionDataDataView>(
        pointer, output, message_);
  }
  bool result() const {
    return data_->result;
  }
 private:
  internal::Automation_DispatchActionResult_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class Automation_DispatchAccessibilityEvents_ParamsDataView {
 public:
  Automation_DispatchAccessibilityEvents_ParamsDataView() = default;

  Automation_DispatchAccessibilityEvents_ParamsDataView(
      internal::Automation_DispatchAccessibilityEvents_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetTreeIdDataView(
      ::ax::mojom::AXTreeIDDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadTreeId(UserType* output) {
    
    auto* pointer = !data_->tree_id.is_null() ? &data_->tree_id : nullptr;
    return mojo::internal::Deserialize<::ax::mojom::AXTreeIDDataView>(
        pointer, output, message_);
  }
  inline void GetUpdatesDataView(
      mojo::ArrayDataView<::ax::mojom::AXTreeUpdateDataView>* output);

  template <typename UserType>
  [[nodiscard]] bool ReadUpdates(UserType* output) {
    
    auto* pointer = data_->updates.Get();
    return mojo::internal::Deserialize<mojo::ArrayDataView<::ax::mojom::AXTreeUpdateDataView>>(
        pointer, output, message_);
  }
  inline void GetMouseLocationDataView(
      ::gfx::mojom::PointDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadMouseLocation(UserType* output) {
    
    auto* pointer = data_->mouse_location.Get();
    return mojo::internal::Deserialize<::gfx::mojom::PointDataView>(
        pointer, output, message_);
  }
  inline void GetEventsDataView(
      mojo::ArrayDataView<::ax::mojom::AXEventDataView>* output);

  template <typename UserType>
  [[nodiscard]] bool ReadEvents(UserType* output) {
    
    auto* pointer = data_->events.Get();
    return mojo::internal::Deserialize<mojo::ArrayDataView<::ax::mojom::AXEventDataView>>(
        pointer, output, message_);
  }
 private:
  internal::Automation_DispatchAccessibilityEvents_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class Automation_DispatchAccessibilityLocationChange_ParamsDataView {
 public:
  Automation_DispatchAccessibilityLocationChange_ParamsDataView() = default;

  Automation_DispatchAccessibilityLocationChange_ParamsDataView(
      internal::Automation_DispatchAccessibilityLocationChange_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetTreeIdDataView(
      ::ax::mojom::AXTreeIDDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadTreeId(UserType* output) {
    
    auto* pointer = !data_->tree_id.is_null() ? &data_->tree_id : nullptr;
    return mojo::internal::Deserialize<::ax::mojom::AXTreeIDDataView>(
        pointer, output, message_);
  }
  int32_t node_id() const {
    return data_->node_id;
  }
  inline void GetBoundsDataView(
      ::ax::mojom::AXRelativeBoundsDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadBounds(UserType* output) {
    
    auto* pointer = data_->bounds.Get();
    return mojo::internal::Deserialize<::ax::mojom::AXRelativeBoundsDataView>(
        pointer, output, message_);
  }
 private:
  internal::Automation_DispatchAccessibilityLocationChange_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};


class Automation_DispatchAccessibilityScrollChange_ParamsDataView {
 public:
  Automation_DispatchAccessibilityScrollChange_ParamsDataView() = default;

  Automation_DispatchAccessibilityScrollChange_ParamsDataView(
      internal::Automation_DispatchAccessibilityScrollChange_Params_Data* data,
      mojo::Message* message)
      : data_(data), message_(message) {}

  bool is_null() const { return !data_; }
  inline void GetTreeIdDataView(
      ::ax::mojom::AXTreeIDDataView* output);

  template <typename UserType>
  [[nodiscard]] bool ReadTreeId(UserType* output) {
    
    auto* pointer = !data_->tree_id.is_null() ? &data_->tree_id : nullptr;
    return mojo::internal::Deserialize<::ax::mojom::AXTreeIDDataView>(
        pointer, output, message_);
  }
  int32_t node_id() const {
    return data_->node_id;
  }
  int32_t scroll_x() const {
    return data_->scroll_x;
  }
  int32_t scroll_y() const {
    return data_->scroll_y;
  }
 private:
  internal::Automation_DispatchAccessibilityScrollChange_Params_Data* data_ = nullptr;
  mojo::Message* message_ = nullptr;
};

inline void Automation_DispatchTreeDestroyedEvent_ParamsDataView::GetTreeIdDataView(
    ::ax::mojom::AXTreeIDDataView* output) {
  auto pointer = &data_->tree_id;
  *output = ::ax::mojom::AXTreeIDDataView(pointer, message_);
}


inline void Automation_DispatchActionResult_ParamsDataView::GetDataDataView(
    ::ax::mojom::AXActionDataDataView* output) {
  auto pointer = data_->data.Get();
  *output = ::ax::mojom::AXActionDataDataView(pointer, message_);
}


inline void Automation_DispatchAccessibilityEvents_ParamsDataView::GetTreeIdDataView(
    ::ax::mojom::AXTreeIDDataView* output) {
  auto pointer = &data_->tree_id;
  *output = ::ax::mojom::AXTreeIDDataView(pointer, message_);
}
inline void Automation_DispatchAccessibilityEvents_ParamsDataView::GetUpdatesDataView(
    mojo::ArrayDataView<::ax::mojom::AXTreeUpdateDataView>* output) {
  auto pointer = data_->updates.Get();
  *output = mojo::ArrayDataView<::ax::mojom::AXTreeUpdateDataView>(pointer, message_);
}
inline void Automation_DispatchAccessibilityEvents_ParamsDataView::GetMouseLocationDataView(
    ::gfx::mojom::PointDataView* output) {
  auto pointer = data_->mouse_location.Get();
  *output = ::gfx::mojom::PointDataView(pointer, message_);
}
inline void Automation_DispatchAccessibilityEvents_ParamsDataView::GetEventsDataView(
    mojo::ArrayDataView<::ax::mojom::AXEventDataView>* output) {
  auto pointer = data_->events.Get();
  *output = mojo::ArrayDataView<::ax::mojom::AXEventDataView>(pointer, message_);
}


inline void Automation_DispatchAccessibilityLocationChange_ParamsDataView::GetTreeIdDataView(
    ::ax::mojom::AXTreeIDDataView* output) {
  auto pointer = &data_->tree_id;
  *output = ::ax::mojom::AXTreeIDDataView(pointer, message_);
}
inline void Automation_DispatchAccessibilityLocationChange_ParamsDataView::GetBoundsDataView(
    ::ax::mojom::AXRelativeBoundsDataView* output) {
  auto pointer = data_->bounds.Get();
  *output = ::ax::mojom::AXRelativeBoundsDataView(pointer, message_);
}


inline void Automation_DispatchAccessibilityScrollChange_ParamsDataView::GetTreeIdDataView(
    ::ax::mojom::AXTreeIDDataView* output) {
  auto pointer = &data_->tree_id;
  *output = ::ax::mojom::AXTreeIDDataView(pointer, message_);
}



}  // ax::mojom

#if defined(__clang__)
#pragma clang diagnostic pop
#endif

#endif  // SERVICES_ACCESSIBILITY_PUBLIC_MOJOM_AUTOMATION_MOJOM_PARAMS_DATA_H_