#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "device/bluetooth/public/mojom/device.mojom.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "device/bluetooth/public/mojom/device.mojom-params-data.h"
#include "device/bluetooth/public/mojom/device.mojom-shared-message-ids.h"
#include "device/bluetooth/public/mojom/device.mojom-import-headers.h"
#include "device/bluetooth/public/mojom/device.mojom-test-utils.h"
namespace bluetooth::mojom {
RSSIWrapper::RSSIWrapper()
: … { … }
RSSIWrapper::RSSIWrapper(
int8_t value_in)
: … { … }
RSSIWrapper::~RSSIWrapper() = default;
size_t RSSIWrapper::Hash(size_t seed) const { … }
void RSSIWrapper::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool RSSIWrapper::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
DeviceInfo::DeviceInfo()
: … { … }
DeviceInfo::DeviceInfo(
const std::optional<std::string>& name_in,
const std::string& name_for_display_in,
const std::string& address_in,
bool is_gatt_connected_in,
RSSIWrapperPtr rssi_in,
std::vector<::device::BluetoothUUID> service_uuids_in,
const base::flat_map<uint16_t, std::vector<uint8_t>>& manufacturer_data_map_in,
const base::flat_map<::device::BluetoothUUID, std::vector<uint8_t>>& service_data_map_in)
: … { … }
DeviceInfo::~DeviceInfo() = default;
void DeviceInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DeviceInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
ServiceInfo::ServiceInfo()
: … { … }
ServiceInfo::ServiceInfo(
const std::string& id_in,
const ::device::BluetoothUUID& uuid_in,
bool is_primary_in)
: … { … }
ServiceInfo::~ServiceInfo() = default;
void ServiceInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool ServiceInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CharacteristicInfo::CharacteristicInfo()
: … { … }
CharacteristicInfo::CharacteristicInfo(
const std::string& id_in,
const ::device::BluetoothUUID& uuid_in,
uint32_t properties_in,
uint32_t permissions_in,
std::vector<uint8_t> last_known_value_in)
: … { … }
CharacteristicInfo::~CharacteristicInfo() = default;
void CharacteristicInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CharacteristicInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
DescriptorInfo::DescriptorInfo()
: … { … }
DescriptorInfo::DescriptorInfo(
const std::string& id_in,
const ::device::BluetoothUUID& uuid_in,
std::vector<uint8_t> last_known_value_in)
: … { … }
DescriptorInfo::~DescriptorInfo() = default;
void DescriptorInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DescriptorInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char Device::Name_[] = …;
Device::IPCStableHashFunction Device::MessageToMethodInfo_(mojo::Message& message) { … }
const char* Device::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t Device::Disconnect_Sym::IPCStableHash() { … }
uint32_t Device::GetInfo_Sym::IPCStableHash() { … }
uint32_t Device::GetServices_Sym::IPCStableHash() { … }
uint32_t Device::GetCharacteristics_Sym::IPCStableHash() { … }
uint32_t Device::ReadValueForCharacteristic_Sym::IPCStableHash() { … }
uint32_t Device::WriteValueForCharacteristic_Sym::IPCStableHash() { … }
uint32_t Device::GetDescriptors_Sym::IPCStableHash() { … }
uint32_t Device::ReadValueForDescriptor_Sym::IPCStableHash() { … }
uint32_t Device::WriteValueForDescriptor_Sym::IPCStableHash() { … }
# endif
class Device_GetInfo_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_GetServices_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_GetCharacteristics_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_ReadValueForCharacteristic_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_WriteValueForCharacteristic_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_GetDescriptors_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_ReadValueForDescriptor_ForwardToCallback
: public mojo::MessageReceiver { … };
class Device_WriteValueForDescriptor_ForwardToCallback
: public mojo::MessageReceiver { … };
DeviceProxy::DeviceProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void DeviceProxy::Disconnect(
) { … }
void DeviceProxy::GetInfo(
GetInfoCallback callback) { … }
void DeviceProxy::GetServices(
GetServicesCallback callback) { … }
void DeviceProxy::GetCharacteristics(
const std::string& in_service_id, GetCharacteristicsCallback callback) { … }
void DeviceProxy::ReadValueForCharacteristic(
const std::string& in_service_id, const std::string& in_characteristic_id, ReadValueForCharacteristicCallback callback) { … }
void DeviceProxy::WriteValueForCharacteristic(
const std::string& in_service_id, const std::string& in_characteristic_id, const std::vector<uint8_t>& in_value, WriteValueForCharacteristicCallback callback) { … }
void DeviceProxy::GetDescriptors(
const std::string& in_service_id, const std::string& in_characteristic_id, GetDescriptorsCallback callback) { … }
void DeviceProxy::ReadValueForDescriptor(
const std::string& in_service_id, const std::string& in_characteristic_id, const std::string& in_descriptor_id, ReadValueForDescriptorCallback callback) { … }
void DeviceProxy::WriteValueForDescriptor(
const std::string& in_service_id, const std::string& in_characteristic_id, const std::string& in_descriptor_id, const std::vector<uint8_t>& in_value, WriteValueForDescriptorCallback callback) { … }
class Device_GetInfo_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_GetInfo_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_GetInfo_ProxyToResponder::Run(
DeviceInfoPtr in_info) { … }
class Device_GetServices_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_GetServices_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_GetServices_ProxyToResponder::Run(
std::vector<ServiceInfoPtr> in_services) { … }
class Device_GetCharacteristics_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_GetCharacteristics_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_GetCharacteristics_ProxyToResponder::Run(
std::optional<std::vector<CharacteristicInfoPtr>> in_characteristics) { … }
class Device_ReadValueForCharacteristic_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_ReadValueForCharacteristic_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_ReadValueForCharacteristic_ProxyToResponder::Run(
GattResult in_result, const std::optional<std::vector<uint8_t>>& in_value) { … }
class Device_WriteValueForCharacteristic_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_WriteValueForCharacteristic_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_WriteValueForCharacteristic_ProxyToResponder::Run(
GattResult in_result) { … }
class Device_GetDescriptors_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_GetDescriptors_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_GetDescriptors_ProxyToResponder::Run(
std::optional<std::vector<DescriptorInfoPtr>> in_descriptors) { … }
class Device_ReadValueForDescriptor_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_ReadValueForDescriptor_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_ReadValueForDescriptor_ProxyToResponder::Run(
GattResult in_result, const std::optional<std::vector<uint8_t>>& in_value) { … }
class Device_WriteValueForDescriptor_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool Device_WriteValueForDescriptor_ForwardToCallback::Accept(
mojo::Message* message) { … }
void Device_WriteValueForDescriptor_ProxyToResponder::Run(
GattResult in_result) { … }
bool DeviceStubDispatch::Accept(
Device* impl,
mojo::Message* message) { … }
bool DeviceStubDispatch::AcceptWithResponder(
Device* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kDeviceValidationInfo[] = …;
bool DeviceRequestValidator::Accept(mojo::Message* message) { … }
bool DeviceResponseValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::bluetooth::mojom::RSSIWrapper::DataView, ::bluetooth::mojom::RSSIWrapperPtr>::Read(
::bluetooth::mojom::RSSIWrapper::DataView input,
::bluetooth::mojom::RSSIWrapperPtr* output) { … }
bool StructTraits<::bluetooth::mojom::DeviceInfo::DataView, ::bluetooth::mojom::DeviceInfoPtr>::Read(
::bluetooth::mojom::DeviceInfo::DataView input,
::bluetooth::mojom::DeviceInfoPtr* output) { … }
bool StructTraits<::bluetooth::mojom::ServiceInfo::DataView, ::bluetooth::mojom::ServiceInfoPtr>::Read(
::bluetooth::mojom::ServiceInfo::DataView input,
::bluetooth::mojom::ServiceInfoPtr* output) { … }
bool StructTraits<::bluetooth::mojom::CharacteristicInfo::DataView, ::bluetooth::mojom::CharacteristicInfoPtr>::Read(
::bluetooth::mojom::CharacteristicInfo::DataView input,
::bluetooth::mojom::CharacteristicInfoPtr* output) { … }
bool StructTraits<::bluetooth::mojom::DescriptorInfo::DataView, ::bluetooth::mojom::DescriptorInfoPtr>::Read(
::bluetooth::mojom::DescriptorInfo::DataView input,
::bluetooth::mojom::DescriptorInfoPtr* output) { … }
}
namespace bluetooth::mojom {
void DeviceInterceptorForTesting::Disconnect() { … }
void DeviceInterceptorForTesting::GetInfo(GetInfoCallback callback) { … }
void DeviceInterceptorForTesting::GetServices(GetServicesCallback callback) { … }
void DeviceInterceptorForTesting::GetCharacteristics(const std::string& service_id, GetCharacteristicsCallback callback) { … }
void DeviceInterceptorForTesting::ReadValueForCharacteristic(const std::string& service_id, const std::string& characteristic_id, ReadValueForCharacteristicCallback callback) { … }
void DeviceInterceptorForTesting::WriteValueForCharacteristic(const std::string& service_id, const std::string& characteristic_id, const std::vector<uint8_t>& value, WriteValueForCharacteristicCallback callback) { … }
void DeviceInterceptorForTesting::GetDescriptors(const std::string& service_id, const std::string& characteristic_id, GetDescriptorsCallback callback) { … }
void DeviceInterceptorForTesting::ReadValueForDescriptor(const std::string& service_id, const std::string& characteristic_id, const std::string& descriptor_id, ReadValueForDescriptorCallback callback) { … }
void DeviceInterceptorForTesting::WriteValueForDescriptor(const std::string& service_id, const std::string& characteristic_id, const std::string& descriptor_id, const std::vector<uint8_t>& value, WriteValueForDescriptorCallback callback) { … }
DeviceAsyncWaiter::DeviceAsyncWaiter(
Device* proxy) : … { … }
DeviceAsyncWaiter::~DeviceAsyncWaiter() = default;
void DeviceAsyncWaiter::GetInfo(
DeviceInfoPtr* out_info) { … }
DeviceInfoPtr DeviceAsyncWaiter::GetInfo(
) { … }
void DeviceAsyncWaiter::GetServices(
std::vector<ServiceInfoPtr>* out_services) { … }
std::vector<ServiceInfoPtr> DeviceAsyncWaiter::GetServices(
) { … }
void DeviceAsyncWaiter::GetCharacteristics(
const std::string& service_id, std::optional<std::vector<CharacteristicInfoPtr>>* out_characteristics) { … }
std::optional<std::vector<CharacteristicInfoPtr>> DeviceAsyncWaiter::GetCharacteristics(
const std::string& service_id) { … }
void DeviceAsyncWaiter::ReadValueForCharacteristic(
const std::string& service_id, const std::string& characteristic_id, GattResult* out_result, std::optional<std::vector<uint8_t>>* out_value) { … }
void DeviceAsyncWaiter::WriteValueForCharacteristic(
const std::string& service_id, const std::string& characteristic_id, const std::vector<uint8_t>& value, GattResult* out_result) { … }
GattResult DeviceAsyncWaiter::WriteValueForCharacteristic(
const std::string& service_id, const std::string& characteristic_id, const std::vector<uint8_t>& value) { … }
void DeviceAsyncWaiter::GetDescriptors(
const std::string& service_id, const std::string& characteristic_id, std::optional<std::vector<DescriptorInfoPtr>>* out_descriptors) { … }
std::optional<std::vector<DescriptorInfoPtr>> DeviceAsyncWaiter::GetDescriptors(
const std::string& service_id, const std::string& characteristic_id) { … }
void DeviceAsyncWaiter::ReadValueForDescriptor(
const std::string& service_id, const std::string& characteristic_id, const std::string& descriptor_id, GattResult* out_result, std::optional<std::vector<uint8_t>>* out_value) { … }
void DeviceAsyncWaiter::WriteValueForDescriptor(
const std::string& service_id, const std::string& characteristic_id, const std::string& descriptor_id, const std::vector<uint8_t>& value, GattResult* out_result) { … }
GattResult DeviceAsyncWaiter::WriteValueForDescriptor(
const std::string& service_id, const std::string& characteristic_id, const std::string& descriptor_id, const std::vector<uint8_t>& value) { … }
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif