// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: discovery_resources.proto
// Protobuf C++ Version: 7.35.1

#ifndef discovery_5fresources_2eproto_2epb_2eh
#define discovery_5fresources_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_discovery_5fresources_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_discovery_5fresources_2eproto {
  static const ::uint32_t offsets[];
};
namespace chrome_browser_media {
namespace proto {
class DeviceCapabilities;
struct DeviceCapabilitiesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeviceCapabilitiesGlobalsTypeInternal DeviceCapabilities_globals_;
extern const ::google::protobuf::internal::ClassDataLite DeviceCapabilities_class_data_;
#else
extern const DeviceCapabilitiesGlobalsTypeInternal DeviceCapabilities_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DiscoveryDevice;
struct DiscoveryDeviceGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DiscoveryDeviceGlobalsTypeInternal DiscoveryDevice_globals_;
extern const ::google::protobuf::internal::ClassDataLite DiscoveryDevice_class_data_;
#else
extern const DiscoveryDeviceGlobalsTypeInternal DiscoveryDevice_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class NetworkInfo;
struct NetworkInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern NetworkInfoGlobalsTypeInternal NetworkInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite NetworkInfo_class_data_;
#else
extern const NetworkInfoGlobalsTypeInternal NetworkInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace proto
}  // namespace chrome_browser_media
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace chrome_browser_media {
namespace proto {

// ===================================================================


// -------------------------------------------------------------------

class  NetworkInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_browser_media.proto.NetworkInfo) */ {
 public:
  inline NetworkInfo() : NetworkInfo(nullptr) {}
  ~NetworkInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(NetworkInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(NetworkInfo));
  }
#endif

  template <typename = void>
  explicit constexpr NetworkInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline NetworkInfo(const NetworkInfo& from) : NetworkInfo(nullptr, from) {}
  inline NetworkInfo(NetworkInfo&& from) noexcept : NetworkInfo(nullptr, ::std::move(from)) {}
  inline NetworkInfo& operator=(const NetworkInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline NetworkInfo& operator=(NetworkInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const NetworkInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<NetworkInfo>(&NetworkInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(NetworkInfo& a, NetworkInfo& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(NetworkInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NetworkInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  NetworkInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<NetworkInfo>(arena);
  }
  void CopyFrom(const NetworkInfo& from);
  void MergeFrom(const NetworkInfo& from) { NetworkInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(NetworkInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_browser_media.proto.NetworkInfo"; }

  explicit NetworkInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  NetworkInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NetworkInfo& from);
  NetworkInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, NetworkInfo&& from) noexcept
      : NetworkInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kHostNameFieldNumber = 1,
    kPortFieldNumber = 2,
    kIpV4AddressFieldNumber = 3,
    kIpV6AddressFieldNumber = 4,
  };
  // string host_name = 1;
  void clear_host_name() ;
  const ::std::string& host_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_host_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_host_name();
  ::std::string* PROTOBUF_NULLABLE release_host_name();
  void set_allocated_host_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_host_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_host_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_host_name();

  public:
  // string port = 2;
  void clear_port() ;
  const ::std::string& port() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_port(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_port();
  ::std::string* PROTOBUF_NULLABLE release_port();
  void set_allocated_port(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_port() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_port(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_port();

  public:
  // string ip_v4_address = 3;
  void clear_ip_v4_address() ;
  const ::std::string& ip_v4_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ip_v4_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_ip_v4_address();
  ::std::string* PROTOBUF_NULLABLE release_ip_v4_address();
  void set_allocated_ip_v4_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_ip_v4_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_ip_v4_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_ip_v4_address();

  public:
  // string ip_v6_address = 4;
  void clear_ip_v6_address() ;
  const ::std::string& ip_v6_address() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ip_v6_address(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_ip_v6_address();
  ::std::string* PROTOBUF_NULLABLE release_ip_v6_address();
  void set_allocated_ip_v6_address(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_ip_v6_address() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_ip_v6_address(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_ip_v6_address();

  public:
  // @@protoc_insertion_point(class_scope:chrome_browser_media.proto.NetworkInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 86,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const NetworkInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr host_name_;
    ::google::protobuf::internal::ArenaStringPtr port_;
    ::google::protobuf::internal::ArenaStringPtr ip_v4_address_;
    ::google::protobuf::internal::ArenaStringPtr ip_v6_address_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_discovery_5fresources_2eproto;
};
// -------------------------------------------------------------------

class  DeviceCapabilities final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_browser_media.proto.DeviceCapabilities) */ {
 public:
  inline DeviceCapabilities() : DeviceCapabilities(nullptr) {}
  ~DeviceCapabilities() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeviceCapabilities* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeviceCapabilities));
  }
#endif

  template <typename = void>
  explicit constexpr DeviceCapabilities(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeviceCapabilities(const DeviceCapabilities& from) : DeviceCapabilities(nullptr, from) {}
  inline DeviceCapabilities(DeviceCapabilities&& from) noexcept : DeviceCapabilities(nullptr, ::std::move(from)) {}
  inline DeviceCapabilities& operator=(const DeviceCapabilities& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeviceCapabilities& operator=(DeviceCapabilities&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const DeviceCapabilities& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeviceCapabilities>(&DeviceCapabilities_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(DeviceCapabilities& a, DeviceCapabilities& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(DeviceCapabilities* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeviceCapabilities* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  DeviceCapabilities* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<DeviceCapabilities>(arena);
  }
  void CopyFrom(const DeviceCapabilities& from);
  void MergeFrom(const DeviceCapabilities& from) { DeviceCapabilities::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeviceCapabilities* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_browser_media.proto.DeviceCapabilities"; }

  explicit DeviceCapabilities(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeviceCapabilities(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeviceCapabilities& from);
  DeviceCapabilities(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeviceCapabilities&& from) noexcept
      : DeviceCapabilities(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kVideoOutFieldNumber = 1,
    kVideoInFieldNumber = 2,
    kAudioOutFieldNumber = 3,
    kAudioInFieldNumber = 4,
    kDevModeFieldNumber = 5,
  };
  // bool video_out = 1;
  void clear_video_out() ;
  bool video_out() const;
  void set_video_out(bool value);

  private:
  bool _internal_video_out() const;
  void _internal_set_video_out(bool value);

  public:
  // bool video_in = 2;
  void clear_video_in() ;
  bool video_in() const;
  void set_video_in(bool value);

  private:
  bool _internal_video_in() const;
  void _internal_set_video_in(bool value);

  public:
  // bool audio_out = 3;
  void clear_audio_out() ;
  bool audio_out() const;
  void set_audio_out(bool value);

  private:
  bool _internal_audio_out() const;
  void _internal_set_audio_out(bool value);

  public:
  // bool audio_in = 4;
  void clear_audio_in() ;
  bool audio_in() const;
  void set_audio_in(bool value);

  private:
  bool _internal_audio_in() const;
  void _internal_set_audio_in(bool value);

  public:
  // bool dev_mode = 5;
  void clear_dev_mode() ;
  bool dev_mode() const;
  void set_dev_mode(bool value);

  private:
  bool _internal_dev_mode() const;
  void _internal_set_dev_mode(bool value);

  public:
  // @@protoc_insertion_point(class_scope:chrome_browser_media.proto.DeviceCapabilities)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeviceCapabilities& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool video_out_;
    bool video_in_;
    bool audio_out_;
    bool audio_in_;
    bool dev_mode_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_discovery_5fresources_2eproto;
};
// -------------------------------------------------------------------

class  DiscoveryDevice final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_browser_media.proto.DiscoveryDevice) */ {
 public:
  inline DiscoveryDevice() : DiscoveryDevice(nullptr) {}
  ~DiscoveryDevice() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DiscoveryDevice* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DiscoveryDevice));
  }
#endif

  template <typename = void>
  explicit constexpr DiscoveryDevice(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DiscoveryDevice(const DiscoveryDevice& from) : DiscoveryDevice(nullptr, from) {}
  inline DiscoveryDevice(DiscoveryDevice&& from) noexcept : DiscoveryDevice(nullptr, ::std::move(from)) {}
  inline DiscoveryDevice& operator=(const DiscoveryDevice& from) {
    CopyFrom(from);
    return *this;
  }
  inline DiscoveryDevice& operator=(DiscoveryDevice&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const DiscoveryDevice& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DiscoveryDevice>(&DiscoveryDevice_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(DiscoveryDevice& a, DiscoveryDevice& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(DiscoveryDevice* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DiscoveryDevice* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  DiscoveryDevice* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<DiscoveryDevice>(arena);
  }
  void CopyFrom(const DiscoveryDevice& from);
  void MergeFrom(const DiscoveryDevice& from) { DiscoveryDevice::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DiscoveryDevice* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_browser_media.proto.DiscoveryDevice"; }

  explicit DiscoveryDevice(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DiscoveryDevice(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DiscoveryDevice& from);
  DiscoveryDevice(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DiscoveryDevice&& from) noexcept
      : DiscoveryDevice(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDisplayNameFieldNumber = 1,
    kIdFieldNumber = 6,
    kDeviceCapabilitiesFieldNumber = 4,
    kNetworkInfoFieldNumber = 5,
  };
  // string display_name = 1;
  void clear_display_name() ;
  const ::std::string& display_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_display_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_display_name();
  ::std::string* PROTOBUF_NULLABLE release_display_name();
  void set_allocated_display_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_display_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_display_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_display_name();

  public:
  // string id = 6;
  void clear_id() ;
  const ::std::string& id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_id();
  ::std::string* PROTOBUF_NULLABLE release_id();
  void set_allocated_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_id();

  public:
  // .chrome_browser_media.proto.DeviceCapabilities device_capabilities = 4;
  bool has_device_capabilities()
      const;
  void clear_device_capabilities() ;
  const ::chrome_browser_media::proto::DeviceCapabilities& device_capabilities() const;
  ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE release_device_capabilities();
  ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NONNULL mutable_device_capabilities();
  void set_allocated_device_capabilities(::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_device_capabilities(::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE value);
  ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE unsafe_arena_release_device_capabilities();

  private:
  const ::chrome_browser_media::proto::DeviceCapabilities& _internal_device_capabilities() const;
  ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NONNULL _internal_mutable_device_capabilities();

  public:
  // .chrome_browser_media.proto.NetworkInfo network_info = 5;
  bool has_network_info()
      const;
  void clear_network_info() ;
  const ::chrome_browser_media::proto::NetworkInfo& network_info() const;
  ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE release_network_info();
  ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NONNULL mutable_network_info();
  void set_allocated_network_info(::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_network_info(::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE value);
  ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE unsafe_arena_release_network_info();

  private:
  const ::chrome_browser_media::proto::NetworkInfo& _internal_network_info() const;
  ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NONNULL _internal_mutable_network_info();

  public:
  // @@protoc_insertion_point(class_scope:chrome_browser_media.proto.DiscoveryDevice)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          2, 65,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DiscoveryDevice& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr display_name_;
    ::google::protobuf::internal::ArenaStringPtr id_;
    ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE device_capabilities_;
    ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE network_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_discovery_5fresources_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// DeviceCapabilities

// bool video_out = 1;
inline void DeviceCapabilities::clear_video_out() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.video_out_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool DeviceCapabilities::video_out() const {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DeviceCapabilities.video_out)
  return _internal_video_out();
}
inline void DeviceCapabilities::set_video_out(bool value) {
  _internal_set_video_out(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DeviceCapabilities.video_out)
}
inline bool DeviceCapabilities::_internal_video_out() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.video_out_;
}
inline void DeviceCapabilities::_internal_set_video_out(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.video_out_ = value;
}

// bool video_in = 2;
inline void DeviceCapabilities::clear_video_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.video_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool DeviceCapabilities::video_in() const {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DeviceCapabilities.video_in)
  return _internal_video_in();
}
inline void DeviceCapabilities::set_video_in(bool value) {
  _internal_set_video_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DeviceCapabilities.video_in)
}
inline bool DeviceCapabilities::_internal_video_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.video_in_;
}
inline void DeviceCapabilities::_internal_set_video_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.video_in_ = value;
}

// bool audio_out = 3;
inline void DeviceCapabilities::clear_audio_out() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audio_out_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool DeviceCapabilities::audio_out() const {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DeviceCapabilities.audio_out)
  return _internal_audio_out();
}
inline void DeviceCapabilities::set_audio_out(bool value) {
  _internal_set_audio_out(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DeviceCapabilities.audio_out)
}
inline bool DeviceCapabilities::_internal_audio_out() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.audio_out_;
}
inline void DeviceCapabilities::_internal_set_audio_out(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audio_out_ = value;
}

// bool audio_in = 4;
inline void DeviceCapabilities::clear_audio_in() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audio_in_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool DeviceCapabilities::audio_in() const {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DeviceCapabilities.audio_in)
  return _internal_audio_in();
}
inline void DeviceCapabilities::set_audio_in(bool value) {
  _internal_set_audio_in(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DeviceCapabilities.audio_in)
}
inline bool DeviceCapabilities::_internal_audio_in() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.audio_in_;
}
inline void DeviceCapabilities::_internal_set_audio_in(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audio_in_ = value;
}

// bool dev_mode = 5;
inline void DeviceCapabilities::clear_dev_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dev_mode_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool DeviceCapabilities::dev_mode() const {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DeviceCapabilities.dev_mode)
  return _internal_dev_mode();
}
inline void DeviceCapabilities::set_dev_mode(bool value) {
  _internal_set_dev_mode(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DeviceCapabilities.dev_mode)
}
inline bool DeviceCapabilities::_internal_dev_mode() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dev_mode_;
}
inline void DeviceCapabilities::_internal_set_dev_mode(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dev_mode_ = value;
}

// -------------------------------------------------------------------

// NetworkInfo

// string host_name = 1;
inline void NetworkInfo::clear_host_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.host_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& NetworkInfo::host_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.NetworkInfo.host_name)
  return _internal_host_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NetworkInfo::set_host_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.host_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.NetworkInfo.host_name)
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::mutable_host_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_host_name();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.NetworkInfo.host_name)
  return _s;
}
inline const ::std::string& NetworkInfo::_internal_host_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.host_name_.Get();
}
inline void NetworkInfo::_internal_set_host_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.host_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::_internal_mutable_host_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.host_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NetworkInfo::release_host_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.NetworkInfo.host_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.host_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.host_name_.Set("", GetArena());
  }
  return released;
}
inline void NetworkInfo::set_allocated_host_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.host_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.host_name_.IsDefault()) {
    _impl_.host_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.NetworkInfo.host_name)
}

// string port = 2;
inline void NetworkInfo::clear_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& NetworkInfo::port() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.NetworkInfo.port)
  return _internal_port();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NetworkInfo::set_port(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.port_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.NetworkInfo.port)
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::mutable_port()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_port();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.NetworkInfo.port)
  return _s;
}
inline const ::std::string& NetworkInfo::_internal_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.port_.Get();
}
inline void NetworkInfo::_internal_set_port(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.port_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::_internal_mutable_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.port_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NetworkInfo::release_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.NetworkInfo.port)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.port_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.port_.Set("", GetArena());
  }
  return released;
}
inline void NetworkInfo::set_allocated_port(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.port_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.port_.IsDefault()) {
    _impl_.port_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.NetworkInfo.port)
}

// string ip_v4_address = 3;
inline void NetworkInfo::clear_ip_v4_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_v4_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& NetworkInfo::ip_v4_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.NetworkInfo.ip_v4_address)
  return _internal_ip_v4_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NetworkInfo::set_ip_v4_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.ip_v4_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.NetworkInfo.ip_v4_address)
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::mutable_ip_v4_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_ip_v4_address();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.NetworkInfo.ip_v4_address)
  return _s;
}
inline const ::std::string& NetworkInfo::_internal_ip_v4_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ip_v4_address_.Get();
}
inline void NetworkInfo::_internal_set_ip_v4_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_v4_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::_internal_mutable_ip_v4_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.ip_v4_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NetworkInfo::release_ip_v4_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.NetworkInfo.ip_v4_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.ip_v4_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.ip_v4_address_.Set("", GetArena());
  }
  return released;
}
inline void NetworkInfo::set_allocated_ip_v4_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.ip_v4_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.ip_v4_address_.IsDefault()) {
    _impl_.ip_v4_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.NetworkInfo.ip_v4_address)
}

// string ip_v6_address = 4;
inline void NetworkInfo::clear_ip_v6_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_v6_address_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& NetworkInfo::ip_v6_address() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.NetworkInfo.ip_v6_address)
  return _internal_ip_v6_address();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NetworkInfo::set_ip_v6_address(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.ip_v6_address_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.NetworkInfo.ip_v6_address)
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::mutable_ip_v6_address()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_ip_v6_address();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.NetworkInfo.ip_v6_address)
  return _s;
}
inline const ::std::string& NetworkInfo::_internal_ip_v6_address() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ip_v6_address_.Get();
}
inline void NetworkInfo::_internal_set_ip_v6_address(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ip_v6_address_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NetworkInfo::_internal_mutable_ip_v6_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.ip_v6_address_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NetworkInfo::release_ip_v6_address() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.NetworkInfo.ip_v6_address)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.ip_v6_address_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.ip_v6_address_.Set("", GetArena());
  }
  return released;
}
inline void NetworkInfo::set_allocated_ip_v6_address(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.ip_v6_address_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.ip_v6_address_.IsDefault()) {
    _impl_.ip_v6_address_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.NetworkInfo.ip_v6_address)
}

// -------------------------------------------------------------------

// DiscoveryDevice

// string display_name = 1;
inline void DiscoveryDevice::clear_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DiscoveryDevice::display_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DiscoveryDevice.display_name)
  return _internal_display_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DiscoveryDevice::set_display_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.display_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DiscoveryDevice.display_name)
}
inline ::std::string* PROTOBUF_NONNULL DiscoveryDevice::mutable_display_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_display_name();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.DiscoveryDevice.display_name)
  return _s;
}
inline const ::std::string& DiscoveryDevice::_internal_display_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.display_name_.Get();
}
inline void DiscoveryDevice::_internal_set_display_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DiscoveryDevice::_internal_mutable_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.display_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DiscoveryDevice::release_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.DiscoveryDevice.display_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.display_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.display_name_.Set("", GetArena());
  }
  return released;
}
inline void DiscoveryDevice::set_allocated_display_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.display_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.display_name_.IsDefault()) {
    _impl_.display_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.DiscoveryDevice.display_name)
}

// .chrome_browser_media.proto.DeviceCapabilities device_capabilities = 4;
inline bool DiscoveryDevice::has_device_capabilities() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.device_capabilities_ != nullptr);
  return value;
}
inline void DiscoveryDevice::clear_device_capabilities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.device_capabilities_ != nullptr) _impl_.device_capabilities_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::chrome_browser_media::proto::DeviceCapabilities& DiscoveryDevice::_internal_device_capabilities() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::chrome_browser_media::proto::DeviceCapabilities* p = _impl_.device_capabilities_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::chrome_browser_media::proto::DeviceCapabilities>(&::chrome_browser_media::proto::DeviceCapabilities_globals_);
}
inline const ::chrome_browser_media::proto::DeviceCapabilities& DiscoveryDevice::device_capabilities() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DiscoveryDevice.device_capabilities)
  return _internal_device_capabilities();
}
inline void DiscoveryDevice::unsafe_arena_set_allocated_device_capabilities(
    ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.device_capabilities_);
  }
  _impl_.device_capabilities_ = reinterpret_cast<::chrome_browser_media::proto::DeviceCapabilities*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:chrome_browser_media.proto.DiscoveryDevice.device_capabilities)
}
inline ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE DiscoveryDevice::release_device_capabilities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::chrome_browser_media::proto::DeviceCapabilities* released = _impl_.device_capabilities_;
  _impl_.device_capabilities_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE DiscoveryDevice::unsafe_arena_release_device_capabilities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.DiscoveryDevice.device_capabilities)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::chrome_browser_media::proto::DeviceCapabilities* temp = _impl_.device_capabilities_;
  _impl_.device_capabilities_ = nullptr;
  return temp;
}
inline ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NONNULL DiscoveryDevice::_internal_mutable_device_capabilities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.device_capabilities_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::chrome_browser_media::proto::DeviceCapabilities>(GetArena());
    _impl_.device_capabilities_ = reinterpret_cast<::chrome_browser_media::proto::DeviceCapabilities*>(p);
  }
  return _impl_.device_capabilities_;
}
inline ::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NONNULL DiscoveryDevice::mutable_device_capabilities()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::chrome_browser_media::proto::DeviceCapabilities* _msg = _internal_mutable_device_capabilities();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.DiscoveryDevice.device_capabilities)
  return _msg;
}
inline void DiscoveryDevice::set_allocated_device_capabilities(::chrome_browser_media::proto::DeviceCapabilities* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.device_capabilities_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.device_capabilities_ = reinterpret_cast<::chrome_browser_media::proto::DeviceCapabilities*>(value);
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.DiscoveryDevice.device_capabilities)
}

// .chrome_browser_media.proto.NetworkInfo network_info = 5;
inline bool DiscoveryDevice::has_network_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.network_info_ != nullptr);
  return value;
}
inline void DiscoveryDevice::clear_network_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.network_info_ != nullptr) _impl_.network_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::chrome_browser_media::proto::NetworkInfo& DiscoveryDevice::_internal_network_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::chrome_browser_media::proto::NetworkInfo* p = _impl_.network_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::chrome_browser_media::proto::NetworkInfo>(&::chrome_browser_media::proto::NetworkInfo_globals_);
}
inline const ::chrome_browser_media::proto::NetworkInfo& DiscoveryDevice::network_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DiscoveryDevice.network_info)
  return _internal_network_info();
}
inline void DiscoveryDevice::unsafe_arena_set_allocated_network_info(
    ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.network_info_);
  }
  _impl_.network_info_ = reinterpret_cast<::chrome_browser_media::proto::NetworkInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:chrome_browser_media.proto.DiscoveryDevice.network_info)
}
inline ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE DiscoveryDevice::release_network_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::chrome_browser_media::proto::NetworkInfo* released = _impl_.network_info_;
  _impl_.network_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE DiscoveryDevice::unsafe_arena_release_network_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.DiscoveryDevice.network_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::chrome_browser_media::proto::NetworkInfo* temp = _impl_.network_info_;
  _impl_.network_info_ = nullptr;
  return temp;
}
inline ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NONNULL DiscoveryDevice::_internal_mutable_network_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.network_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::chrome_browser_media::proto::NetworkInfo>(GetArena());
    _impl_.network_info_ = reinterpret_cast<::chrome_browser_media::proto::NetworkInfo*>(p);
  }
  return _impl_.network_info_;
}
inline ::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NONNULL DiscoveryDevice::mutable_network_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::chrome_browser_media::proto::NetworkInfo* _msg = _internal_mutable_network_info();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.DiscoveryDevice.network_info)
  return _msg;
}
inline void DiscoveryDevice::set_allocated_network_info(::chrome_browser_media::proto::NetworkInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.network_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.network_info_ = reinterpret_cast<::chrome_browser_media::proto::NetworkInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.DiscoveryDevice.network_info)
}

// string id = 6;
inline void DiscoveryDevice::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& DiscoveryDevice::id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_browser_media.proto.DiscoveryDevice.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DiscoveryDevice::set_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_browser_media.proto.DiscoveryDevice.id)
}
inline ::std::string* PROTOBUF_NONNULL DiscoveryDevice::mutable_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:chrome_browser_media.proto.DiscoveryDevice.id)
  return _s;
}
inline const ::std::string& DiscoveryDevice::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_.Get();
}
inline void DiscoveryDevice::_internal_set_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DiscoveryDevice::_internal_mutable_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DiscoveryDevice::release_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_browser_media.proto.DiscoveryDevice.id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.id_.Set("", GetArena());
  }
  return released;
}
inline void DiscoveryDevice::set_allocated_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.id_.IsDefault()) {
    _impl_.id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_browser_media.proto.DiscoveryDevice.id)
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace proto
}  // namespace chrome_browser_media


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // discovery_5fresources_2eproto_2epb_2eh
