// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: internal/proto/analytics/connections_log.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3019000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3019001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.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
#include <google/protobuf/generated_enum_util.h>
#include "proto/connections_enums.pb.h"
#include "proto/errorcode/error_code_enums.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[17]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const uint32_t offsets[];
};
namespace location {
namespace nearby {
namespace analytics {
namespace proto {
class ConnectionsLog;
struct ConnectionsLogDefaultTypeInternal;
extern ConnectionsLogDefaultTypeInternal _ConnectionsLog_default_instance_;
class ConnectionsLog_AdvertisingMetadata;
struct ConnectionsLog_AdvertisingMetadataDefaultTypeInternal;
extern ConnectionsLog_AdvertisingMetadataDefaultTypeInternal _ConnectionsLog_AdvertisingMetadata_default_instance_;
class ConnectionsLog_AdvertisingPhase;
struct ConnectionsLog_AdvertisingPhaseDefaultTypeInternal;
extern ConnectionsLog_AdvertisingPhaseDefaultTypeInternal _ConnectionsLog_AdvertisingPhase_default_instance_;
class ConnectionsLog_BandwidthUpgradeAttempt;
struct ConnectionsLog_BandwidthUpgradeAttemptDefaultTypeInternal;
extern ConnectionsLog_BandwidthUpgradeAttemptDefaultTypeInternal _ConnectionsLog_BandwidthUpgradeAttempt_default_instance_;
class ConnectionsLog_ClientSession;
struct ConnectionsLog_ClientSessionDefaultTypeInternal;
extern ConnectionsLog_ClientSessionDefaultTypeInternal _ConnectionsLog_ClientSession_default_instance_;
class ConnectionsLog_ConnectionAttempt;
struct ConnectionsLog_ConnectionAttemptDefaultTypeInternal;
extern ConnectionsLog_ConnectionAttemptDefaultTypeInternal _ConnectionsLog_ConnectionAttempt_default_instance_;
class ConnectionsLog_ConnectionAttemptMetadata;
struct ConnectionsLog_ConnectionAttemptMetadataDefaultTypeInternal;
extern ConnectionsLog_ConnectionAttemptMetadataDefaultTypeInternal _ConnectionsLog_ConnectionAttemptMetadata_default_instance_;
class ConnectionsLog_ConnectionRequest;
struct ConnectionsLog_ConnectionRequestDefaultTypeInternal;
extern ConnectionsLog_ConnectionRequestDefaultTypeInternal _ConnectionsLog_ConnectionRequest_default_instance_;
class ConnectionsLog_DiscoveredEndpoint;
struct ConnectionsLog_DiscoveredEndpointDefaultTypeInternal;
extern ConnectionsLog_DiscoveredEndpointDefaultTypeInternal _ConnectionsLog_DiscoveredEndpoint_default_instance_;
class ConnectionsLog_DiscoveryMetadata;
struct ConnectionsLog_DiscoveryMetadataDefaultTypeInternal;
extern ConnectionsLog_DiscoveryMetadataDefaultTypeInternal _ConnectionsLog_DiscoveryMetadata_default_instance_;
class ConnectionsLog_DiscoveryPhase;
struct ConnectionsLog_DiscoveryPhaseDefaultTypeInternal;
extern ConnectionsLog_DiscoveryPhaseDefaultTypeInternal _ConnectionsLog_DiscoveryPhase_default_instance_;
class ConnectionsLog_ErrorCode;
struct ConnectionsLog_ErrorCodeDefaultTypeInternal;
extern ConnectionsLog_ErrorCodeDefaultTypeInternal _ConnectionsLog_ErrorCode_default_instance_;
class ConnectionsLog_EstablishedConnection;
struct ConnectionsLog_EstablishedConnectionDefaultTypeInternal;
extern ConnectionsLog_EstablishedConnectionDefaultTypeInternal _ConnectionsLog_EstablishedConnection_default_instance_;
class ConnectionsLog_Payload;
struct ConnectionsLog_PayloadDefaultTypeInternal;
extern ConnectionsLog_PayloadDefaultTypeInternal _ConnectionsLog_Payload_default_instance_;
class ConnectionsLog_RawUwbRangingEvent;
struct ConnectionsLog_RawUwbRangingEventDefaultTypeInternal;
extern ConnectionsLog_RawUwbRangingEventDefaultTypeInternal _ConnectionsLog_RawUwbRangingEvent_default_instance_;
class ConnectionsLog_StrategySession;
struct ConnectionsLog_StrategySessionDefaultTypeInternal;
extern ConnectionsLog_StrategySessionDefaultTypeInternal _ConnectionsLog_StrategySession_default_instance_;
class ConnectionsLog_UwbRangingProcess;
struct ConnectionsLog_UwbRangingProcessDefaultTypeInternal;
extern ConnectionsLog_UwbRangingProcessDefaultTypeInternal _ConnectionsLog_UwbRangingProcess_default_instance_;
}  // namespace proto
}  // namespace analytics
}  // namespace nearby
}  // namespace location
PROTOBUF_NAMESPACE_OPEN
template<> ::location::nearby::analytics::proto::ConnectionsLog* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ClientSession>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ErrorCode>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_Payload* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_Payload>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_StrategySession>(Arena*);
template<> ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* Arena::CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace location {
namespace nearby {
namespace analytics {
namespace proto {

enum ConnectionsLog_EstablishedConnection_SafeDisconnectionResult : int {
  ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNKNOWN_SAFE_DISCONNECTION_RESULT = 0,
  ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SAFE_DISCONNECTION = 1,
  ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNSAFE_DISCONNECTION = 2
};
bool ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_IsValid(int value);
constexpr ConnectionsLog_EstablishedConnection_SafeDisconnectionResult ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_MIN = ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNKNOWN_SAFE_DISCONNECTION_RESULT;
constexpr ConnectionsLog_EstablishedConnection_SafeDisconnectionResult ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_MAX = ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNSAFE_DISCONNECTION;
constexpr int ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_ARRAYSIZE = ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_MAX + 1;

const std::string& ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Name(ConnectionsLog_EstablishedConnection_SafeDisconnectionResult value);
template<typename T>
inline const std::string& ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ConnectionsLog_EstablishedConnection_SafeDisconnectionResult>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Name.");
  return ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Name(static_cast<ConnectionsLog_EstablishedConnection_SafeDisconnectionResult>(enum_t_value));
}
bool ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ConnectionsLog_EstablishedConnection_SafeDisconnectionResult* value);
// ===================================================================

class ConnectionsLog_ClientSession final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.ClientSession) */ {
 public:
  inline ConnectionsLog_ClientSession() : ConnectionsLog_ClientSession(nullptr) {}
  ~ConnectionsLog_ClientSession() override;
  explicit constexpr ConnectionsLog_ClientSession(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_ClientSession(const ConnectionsLog_ClientSession& from);
  ConnectionsLog_ClientSession(ConnectionsLog_ClientSession&& from) noexcept
    : ConnectionsLog_ClientSession() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_ClientSession& operator=(const ConnectionsLog_ClientSession& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_ClientSession& operator=(ConnectionsLog_ClientSession&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_ClientSession& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_ClientSession* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_ClientSession*>(
               &_ConnectionsLog_ClientSession_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(ConnectionsLog_ClientSession& a, ConnectionsLog_ClientSession& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_ClientSession* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_ClientSession* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_ClientSession* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_ClientSession>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_ClientSession& from);
  void MergeFrom(const ConnectionsLog_ClientSession& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_ClientSession* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.ClientSession";
  }
  protected:
  explicit ConnectionsLog_ClientSession(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kStrategySessionFieldNumber = 2,
    kConnectionTokenFieldNumber = 4,
    kDurationMillisFieldNumber = 1,
    kClientFlowIdFieldNumber = 3,
  };
  // repeated .location.nearby.analytics.proto.ConnectionsLog.StrategySession strategy_session = 2;
  int strategy_session_size() const;
  private:
  int _internal_strategy_session_size() const;
  public:
  void clear_strategy_session();
  ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* mutable_strategy_session(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_StrategySession >*
      mutable_strategy_session();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_StrategySession& _internal_strategy_session(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* _internal_add_strategy_session();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_StrategySession& strategy_session(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* add_strategy_session();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_StrategySession >&
      strategy_session() const;

  // optional string connection_token = 4;
  bool has_connection_token() const;
  private:
  bool _internal_has_connection_token() const;
  public:
  void clear_connection_token();
  const std::string& connection_token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_connection_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_connection_token();
  PROTOBUF_NODISCARD std::string* release_connection_token();
  void set_allocated_connection_token(std::string* connection_token);
  private:
  const std::string& _internal_connection_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_connection_token(const std::string& value);
  std::string* _internal_mutable_connection_token();
  public:

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int64 client_flow_id = 3;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.ClientSession)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_StrategySession > strategy_session_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_token_;
  int64_t duration_millis_;
  int64_t client_flow_id_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_StrategySession final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.StrategySession) */ {
 public:
  inline ConnectionsLog_StrategySession() : ConnectionsLog_StrategySession(nullptr) {}
  ~ConnectionsLog_StrategySession() override;
  explicit constexpr ConnectionsLog_StrategySession(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_StrategySession(const ConnectionsLog_StrategySession& from);
  ConnectionsLog_StrategySession(ConnectionsLog_StrategySession&& from) noexcept
    : ConnectionsLog_StrategySession() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_StrategySession& operator=(const ConnectionsLog_StrategySession& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_StrategySession& operator=(ConnectionsLog_StrategySession&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_StrategySession& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_StrategySession* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_StrategySession*>(
               &_ConnectionsLog_StrategySession_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(ConnectionsLog_StrategySession& a, ConnectionsLog_StrategySession& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_StrategySession* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_StrategySession* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_StrategySession* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_StrategySession>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_StrategySession& from);
  void MergeFrom(const ConnectionsLog_StrategySession& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_StrategySession* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.StrategySession";
  }
  protected:
  explicit ConnectionsLog_StrategySession(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kRoleFieldNumber = 3,
    kDiscoveryPhaseFieldNumber = 4,
    kAdvertisingPhaseFieldNumber = 5,
    kConnectionAttemptFieldNumber = 6,
    kEstablishedConnectionFieldNumber = 7,
    kUpgradeAttemptFieldNumber = 9,
    kBuildVersionFieldNumber = 10,
    kDurationMillisFieldNumber = 1,
    kStrategyFieldNumber = 2,
  };
  // repeated .location.nearby.proto.connections.SessionRole role = 3;
  int role_size() const;
  private:
  int _internal_role_size() const;
  public:
  void clear_role();
  private:
  ::location::nearby::proto::connections::SessionRole _internal_role(int index) const;
  void _internal_add_role(::location::nearby::proto::connections::SessionRole value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_role();
  public:
  ::location::nearby::proto::connections::SessionRole role(int index) const;
  void set_role(int index, ::location::nearby::proto::connections::SessionRole value);
  void add_role(::location::nearby::proto::connections::SessionRole value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& role() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_role();

  // repeated .location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase discovery_phase = 4;
  int discovery_phase_size() const;
  private:
  int _internal_discovery_phase_size() const;
  public:
  void clear_discovery_phase();
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* mutable_discovery_phase(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase >*
      mutable_discovery_phase();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase& _internal_discovery_phase(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* _internal_add_discovery_phase();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase& discovery_phase(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* add_discovery_phase();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase >&
      discovery_phase() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase advertising_phase = 5;
  int advertising_phase_size() const;
  private:
  int _internal_advertising_phase_size() const;
  public:
  void clear_advertising_phase();
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* mutable_advertising_phase(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase >*
      mutable_advertising_phase();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase& _internal_advertising_phase(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* _internal_add_advertising_phase();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase& advertising_phase(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* add_advertising_phase();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase >&
      advertising_phase() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt connection_attempt = 6;
  int connection_attempt_size() const;
  private:
  int _internal_connection_attempt_size() const;
  public:
  void clear_connection_attempt();
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* mutable_connection_attempt(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt >*
      mutable_connection_attempt();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt& _internal_connection_attempt(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* _internal_add_connection_attempt();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt& connection_attempt(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* add_connection_attempt();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt >&
      connection_attempt() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection established_connection = 7;
  int established_connection_size() const;
  private:
  int _internal_established_connection_size() const;
  public:
  void clear_established_connection();
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* mutable_established_connection(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection >*
      mutable_established_connection();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection& _internal_established_connection(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* _internal_add_established_connection();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection& established_connection(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* add_established_connection();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection >&
      established_connection() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt upgrade_attempt = 9;
  int upgrade_attempt_size() const;
  private:
  int _internal_upgrade_attempt_size() const;
  public:
  void clear_upgrade_attempt();
  ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* mutable_upgrade_attempt(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt >*
      mutable_upgrade_attempt();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt& _internal_upgrade_attempt(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* _internal_add_upgrade_attempt();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt& upgrade_attempt(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* add_upgrade_attempt();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt >&
      upgrade_attempt() const;

  // optional string build_version = 10;
  bool has_build_version() const;
  private:
  bool _internal_has_build_version() const;
  public:
  void clear_build_version();
  const std::string& build_version() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_build_version(ArgT0&& arg0, ArgT... args);
  std::string* mutable_build_version();
  PROTOBUF_NODISCARD std::string* release_build_version();
  void set_allocated_build_version(std::string* build_version);
  private:
  const std::string& _internal_build_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_build_version(const std::string& value);
  std::string* _internal_mutable_build_version();
  public:

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.ConnectionsStrategy strategy = 2;
  bool has_strategy() const;
  private:
  bool _internal_has_strategy() const;
  public:
  void clear_strategy();
  ::location::nearby::proto::connections::ConnectionsStrategy strategy() const;
  void set_strategy(::location::nearby::proto::connections::ConnectionsStrategy value);
  private:
  ::location::nearby::proto::connections::ConnectionsStrategy _internal_strategy() const;
  void _internal_set_strategy(::location::nearby::proto::connections::ConnectionsStrategy value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.StrategySession)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> role_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase > discovery_phase_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase > advertising_phase_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt > connection_attempt_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection > established_connection_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt > upgrade_attempt_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr build_version_;
  int64_t duration_millis_;
  int strategy_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_DiscoveryPhase final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase) */ {
 public:
  inline ConnectionsLog_DiscoveryPhase() : ConnectionsLog_DiscoveryPhase(nullptr) {}
  ~ConnectionsLog_DiscoveryPhase() override;
  explicit constexpr ConnectionsLog_DiscoveryPhase(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_DiscoveryPhase(const ConnectionsLog_DiscoveryPhase& from);
  ConnectionsLog_DiscoveryPhase(ConnectionsLog_DiscoveryPhase&& from) noexcept
    : ConnectionsLog_DiscoveryPhase() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_DiscoveryPhase& operator=(const ConnectionsLog_DiscoveryPhase& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_DiscoveryPhase& operator=(ConnectionsLog_DiscoveryPhase&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_DiscoveryPhase& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_DiscoveryPhase* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_DiscoveryPhase*>(
               &_ConnectionsLog_DiscoveryPhase_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(ConnectionsLog_DiscoveryPhase& a, ConnectionsLog_DiscoveryPhase& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_DiscoveryPhase* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_DiscoveryPhase* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_DiscoveryPhase* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_DiscoveryPhase>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_DiscoveryPhase& from);
  void MergeFrom(const ConnectionsLog_DiscoveryPhase& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_DiscoveryPhase* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase";
  }
  protected:
  explicit ConnectionsLog_DiscoveryPhase(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kMediumFieldNumber = 2,
    kDiscoveredEndpointFieldNumber = 3,
    kSentConnectionRequestFieldNumber = 4,
    kUwbRangingFieldNumber = 5,
    kDiscoveryMetadataFieldNumber = 7,
    kDurationMillisFieldNumber = 1,
    kClientFlowIdFieldNumber = 6,
  };
  // repeated .location.nearby.proto.connections.Medium medium = 2;
  int medium_size() const;
  private:
  int _internal_medium_size() const;
  public:
  void clear_medium();
  private:
  ::location::nearby::proto::connections::Medium _internal_medium(int index) const;
  void _internal_add_medium(::location::nearby::proto::connections::Medium value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_medium();
  public:
  ::location::nearby::proto::connections::Medium medium(int index) const;
  void set_medium(int index, ::location::nearby::proto::connections::Medium value);
  void add_medium(::location::nearby::proto::connections::Medium value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& medium() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_medium();

  // repeated .location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint discovered_endpoint = 3;
  int discovered_endpoint_size() const;
  private:
  int _internal_discovered_endpoint_size() const;
  public:
  void clear_discovered_endpoint();
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* mutable_discovered_endpoint(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint >*
      mutable_discovered_endpoint();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint& _internal_discovered_endpoint(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* _internal_add_discovered_endpoint();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint& discovered_endpoint(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* add_discovered_endpoint();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint >&
      discovered_endpoint() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest sent_connection_request = 4;
  int sent_connection_request_size() const;
  private:
  int _internal_sent_connection_request_size() const;
  public:
  void clear_sent_connection_request();
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* mutable_sent_connection_request(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >*
      mutable_sent_connection_request();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& _internal_sent_connection_request(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* _internal_add_sent_connection_request();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& sent_connection_request(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* add_sent_connection_request();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >&
      sent_connection_request() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess uwb_ranging = 5;
  int uwb_ranging_size() const;
  private:
  int _internal_uwb_ranging_size() const;
  public:
  void clear_uwb_ranging();
  ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* mutable_uwb_ranging(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess >*
      mutable_uwb_ranging();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess& _internal_uwb_ranging(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* _internal_add_uwb_ranging();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess& uwb_ranging(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* add_uwb_ranging();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess >&
      uwb_ranging() const;

  // optional .location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata discovery_metadata = 7;
  bool has_discovery_metadata() const;
  private:
  bool _internal_has_discovery_metadata() const;
  public:
  void clear_discovery_metadata();
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata& discovery_metadata() const;
  PROTOBUF_NODISCARD ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* release_discovery_metadata();
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* mutable_discovery_metadata();
  void set_allocated_discovery_metadata(::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* discovery_metadata);
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata& _internal_discovery_metadata() const;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* _internal_mutable_discovery_metadata();
  public:
  void unsafe_arena_set_allocated_discovery_metadata(
      ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* discovery_metadata);
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* unsafe_arena_release_discovery_metadata();

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int64 client_flow_id = 6;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> medium_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint > discovered_endpoint_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest > sent_connection_request_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess > uwb_ranging_;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* discovery_metadata_;
  int64_t duration_millis_;
  int64_t client_flow_id_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_DiscoveredEndpoint final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint) */ {
 public:
  inline ConnectionsLog_DiscoveredEndpoint() : ConnectionsLog_DiscoveredEndpoint(nullptr) {}
  ~ConnectionsLog_DiscoveredEndpoint() override;
  explicit constexpr ConnectionsLog_DiscoveredEndpoint(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_DiscoveredEndpoint(const ConnectionsLog_DiscoveredEndpoint& from);
  ConnectionsLog_DiscoveredEndpoint(ConnectionsLog_DiscoveredEndpoint&& from) noexcept
    : ConnectionsLog_DiscoveredEndpoint() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_DiscoveredEndpoint& operator=(const ConnectionsLog_DiscoveredEndpoint& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_DiscoveredEndpoint& operator=(ConnectionsLog_DiscoveredEndpoint&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_DiscoveredEndpoint& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_DiscoveredEndpoint* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_DiscoveredEndpoint*>(
               &_ConnectionsLog_DiscoveredEndpoint_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(ConnectionsLog_DiscoveredEndpoint& a, ConnectionsLog_DiscoveredEndpoint& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_DiscoveredEndpoint* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_DiscoveredEndpoint* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_DiscoveredEndpoint* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_DiscoveredEndpoint>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_DiscoveredEndpoint& from);
  void MergeFrom(const ConnectionsLog_DiscoveredEndpoint& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_DiscoveredEndpoint* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint";
  }
  protected:
  explicit ConnectionsLog_DiscoveredEndpoint(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kLatencyMillisFieldNumber = 2,
    kMediumFieldNumber = 1,
  };
  // optional int64 latency_millis = 2;
  bool has_latency_millis() const;
  private:
  bool _internal_has_latency_millis() const;
  public:
  void clear_latency_millis();
  int64_t latency_millis() const;
  void set_latency_millis(int64_t value);
  private:
  int64_t _internal_latency_millis() const;
  void _internal_set_latency_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.Medium medium = 1;
  bool has_medium() const;
  private:
  bool _internal_has_medium() const;
  public:
  void clear_medium();
  ::location::nearby::proto::connections::Medium medium() const;
  void set_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_medium() const;
  void _internal_set_medium(::location::nearby::proto::connections::Medium value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int64_t latency_millis_;
  int medium_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_UwbRangingProcess final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess) */ {
 public:
  inline ConnectionsLog_UwbRangingProcess() : ConnectionsLog_UwbRangingProcess(nullptr) {}
  ~ConnectionsLog_UwbRangingProcess() override;
  explicit constexpr ConnectionsLog_UwbRangingProcess(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_UwbRangingProcess(const ConnectionsLog_UwbRangingProcess& from);
  ConnectionsLog_UwbRangingProcess(ConnectionsLog_UwbRangingProcess&& from) noexcept
    : ConnectionsLog_UwbRangingProcess() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_UwbRangingProcess& operator=(const ConnectionsLog_UwbRangingProcess& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_UwbRangingProcess& operator=(ConnectionsLog_UwbRangingProcess&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_UwbRangingProcess& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_UwbRangingProcess* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_UwbRangingProcess*>(
               &_ConnectionsLog_UwbRangingProcess_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(ConnectionsLog_UwbRangingProcess& a, ConnectionsLog_UwbRangingProcess& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_UwbRangingProcess* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_UwbRangingProcess* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_UwbRangingProcess* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_UwbRangingProcess>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_UwbRangingProcess& from);
  void MergeFrom(const ConnectionsLog_UwbRangingProcess& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_UwbRangingProcess* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess";
  }
  protected:
  explicit ConnectionsLog_UwbRangingProcess(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kUwbRangingDataFieldNumber = 2,
    kDurationMillisFieldNumber = 1,
    kNumberOfRangingDataFieldNumber = 3,
    kDistanceMinFieldNumber = 4,
    kDistanceMaxFieldNumber = 5,
    kDistanceAveFieldNumber = 6,
    kDistanceVarianceFieldNumber = 7,
    kAzimuthMinFieldNumber = 8,
    kAzimuthMaxFieldNumber = 9,
    kAzimuthAveFieldNumber = 10,
    kAzimuthVarianceFieldNumber = 11,
  };
  // repeated .location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent uwb_ranging_data = 2;
  int uwb_ranging_data_size() const;
  private:
  int _internal_uwb_ranging_data_size() const;
  public:
  void clear_uwb_ranging_data();
  ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* mutable_uwb_ranging_data(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent >*
      mutable_uwb_ranging_data();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent& _internal_uwb_ranging_data(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* _internal_add_uwb_ranging_data();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent& uwb_ranging_data(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* add_uwb_ranging_data();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent >&
      uwb_ranging_data() const;

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int32 number_of_ranging_data = 3;
  bool has_number_of_ranging_data() const;
  private:
  bool _internal_has_number_of_ranging_data() const;
  public:
  void clear_number_of_ranging_data();
  int32_t number_of_ranging_data() const;
  void set_number_of_ranging_data(int32_t value);
  private:
  int32_t _internal_number_of_ranging_data() const;
  void _internal_set_number_of_ranging_data(int32_t value);
  public:

  // optional int32 distance_min = 4;
  bool has_distance_min() const;
  private:
  bool _internal_has_distance_min() const;
  public:
  void clear_distance_min();
  int32_t distance_min() const;
  void set_distance_min(int32_t value);
  private:
  int32_t _internal_distance_min() const;
  void _internal_set_distance_min(int32_t value);
  public:

  // optional int32 distance_max = 5;
  bool has_distance_max() const;
  private:
  bool _internal_has_distance_max() const;
  public:
  void clear_distance_max();
  int32_t distance_max() const;
  void set_distance_max(int32_t value);
  private:
  int32_t _internal_distance_max() const;
  void _internal_set_distance_max(int32_t value);
  public:

  // optional int32 distance_ave = 6;
  bool has_distance_ave() const;
  private:
  bool _internal_has_distance_ave() const;
  public:
  void clear_distance_ave();
  int32_t distance_ave() const;
  void set_distance_ave(int32_t value);
  private:
  int32_t _internal_distance_ave() const;
  void _internal_set_distance_ave(int32_t value);
  public:

  // optional int32 distance_variance = 7;
  bool has_distance_variance() const;
  private:
  bool _internal_has_distance_variance() const;
  public:
  void clear_distance_variance();
  int32_t distance_variance() const;
  void set_distance_variance(int32_t value);
  private:
  int32_t _internal_distance_variance() const;
  void _internal_set_distance_variance(int32_t value);
  public:

  // optional int32 azimuth_min = 8;
  bool has_azimuth_min() const;
  private:
  bool _internal_has_azimuth_min() const;
  public:
  void clear_azimuth_min();
  int32_t azimuth_min() const;
  void set_azimuth_min(int32_t value);
  private:
  int32_t _internal_azimuth_min() const;
  void _internal_set_azimuth_min(int32_t value);
  public:

  // optional int32 azimuth_max = 9;
  bool has_azimuth_max() const;
  private:
  bool _internal_has_azimuth_max() const;
  public:
  void clear_azimuth_max();
  int32_t azimuth_max() const;
  void set_azimuth_max(int32_t value);
  private:
  int32_t _internal_azimuth_max() const;
  void _internal_set_azimuth_max(int32_t value);
  public:

  // optional int32 azimuth_ave = 10;
  bool has_azimuth_ave() const;
  private:
  bool _internal_has_azimuth_ave() const;
  public:
  void clear_azimuth_ave();
  int32_t azimuth_ave() const;
  void set_azimuth_ave(int32_t value);
  private:
  int32_t _internal_azimuth_ave() const;
  void _internal_set_azimuth_ave(int32_t value);
  public:

  // optional int32 azimuth_variance = 11;
  bool has_azimuth_variance() const;
  private:
  bool _internal_has_azimuth_variance() const;
  public:
  void clear_azimuth_variance();
  int32_t azimuth_variance() const;
  void set_azimuth_variance(int32_t value);
  private:
  int32_t _internal_azimuth_variance() const;
  void _internal_set_azimuth_variance(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent > uwb_ranging_data_;
  int64_t duration_millis_;
  int32_t number_of_ranging_data_;
  int32_t distance_min_;
  int32_t distance_max_;
  int32_t distance_ave_;
  int32_t distance_variance_;
  int32_t azimuth_min_;
  int32_t azimuth_max_;
  int32_t azimuth_ave_;
  int32_t azimuth_variance_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_RawUwbRangingEvent final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent) */ {
 public:
  inline ConnectionsLog_RawUwbRangingEvent() : ConnectionsLog_RawUwbRangingEvent(nullptr) {}
  ~ConnectionsLog_RawUwbRangingEvent() override;
  explicit constexpr ConnectionsLog_RawUwbRangingEvent(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_RawUwbRangingEvent(const ConnectionsLog_RawUwbRangingEvent& from);
  ConnectionsLog_RawUwbRangingEvent(ConnectionsLog_RawUwbRangingEvent&& from) noexcept
    : ConnectionsLog_RawUwbRangingEvent() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_RawUwbRangingEvent& operator=(const ConnectionsLog_RawUwbRangingEvent& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_RawUwbRangingEvent& operator=(ConnectionsLog_RawUwbRangingEvent&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_RawUwbRangingEvent& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_RawUwbRangingEvent* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_RawUwbRangingEvent*>(
               &_ConnectionsLog_RawUwbRangingEvent_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(ConnectionsLog_RawUwbRangingEvent& a, ConnectionsLog_RawUwbRangingEvent& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_RawUwbRangingEvent* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_RawUwbRangingEvent* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_RawUwbRangingEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_RawUwbRangingEvent>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_RawUwbRangingEvent& from);
  void MergeFrom(const ConnectionsLog_RawUwbRangingEvent& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_RawUwbRangingEvent* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent";
  }
  protected:
  explicit ConnectionsLog_RawUwbRangingEvent(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kDistanceFieldNumber = 1,
    kAzimuthAngleFieldNumber = 2,
    kPolarAngleFieldNumber = 3,
  };
  // optional int32 distance = 1;
  bool has_distance() const;
  private:
  bool _internal_has_distance() const;
  public:
  void clear_distance();
  int32_t distance() const;
  void set_distance(int32_t value);
  private:
  int32_t _internal_distance() const;
  void _internal_set_distance(int32_t value);
  public:

  // optional int32 azimuth_angle = 2;
  bool has_azimuth_angle() const;
  private:
  bool _internal_has_azimuth_angle() const;
  public:
  void clear_azimuth_angle();
  int32_t azimuth_angle() const;
  void set_azimuth_angle(int32_t value);
  private:
  int32_t _internal_azimuth_angle() const;
  void _internal_set_azimuth_angle(int32_t value);
  public:

  // optional int32 polar_angle = 3;
  bool has_polar_angle() const;
  private:
  bool _internal_has_polar_angle() const;
  public:
  void clear_polar_angle();
  int32_t polar_angle() const;
  void set_polar_angle(int32_t value);
  private:
  int32_t _internal_polar_angle() const;
  void _internal_set_polar_angle(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int32_t distance_;
  int32_t azimuth_angle_;
  int32_t polar_angle_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_AdvertisingPhase final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase) */ {
 public:
  inline ConnectionsLog_AdvertisingPhase() : ConnectionsLog_AdvertisingPhase(nullptr) {}
  ~ConnectionsLog_AdvertisingPhase() override;
  explicit constexpr ConnectionsLog_AdvertisingPhase(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_AdvertisingPhase(const ConnectionsLog_AdvertisingPhase& from);
  ConnectionsLog_AdvertisingPhase(ConnectionsLog_AdvertisingPhase&& from) noexcept
    : ConnectionsLog_AdvertisingPhase() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_AdvertisingPhase& operator=(const ConnectionsLog_AdvertisingPhase& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_AdvertisingPhase& operator=(ConnectionsLog_AdvertisingPhase&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_AdvertisingPhase& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_AdvertisingPhase* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_AdvertisingPhase*>(
               &_ConnectionsLog_AdvertisingPhase_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(ConnectionsLog_AdvertisingPhase& a, ConnectionsLog_AdvertisingPhase& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_AdvertisingPhase* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_AdvertisingPhase* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_AdvertisingPhase* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_AdvertisingPhase>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_AdvertisingPhase& from);
  void MergeFrom(const ConnectionsLog_AdvertisingPhase& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_AdvertisingPhase* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase";
  }
  protected:
  explicit ConnectionsLog_AdvertisingPhase(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kMediumFieldNumber = 2,
    kReceivedConnectionRequestFieldNumber = 3,
    kAdvertisingMetadataFieldNumber = 5,
    kDurationMillisFieldNumber = 1,
    kClientFlowIdFieldNumber = 4,
  };
  // repeated .location.nearby.proto.connections.Medium medium = 2;
  int medium_size() const;
  private:
  int _internal_medium_size() const;
  public:
  void clear_medium();
  private:
  ::location::nearby::proto::connections::Medium _internal_medium(int index) const;
  void _internal_add_medium(::location::nearby::proto::connections::Medium value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_medium();
  public:
  ::location::nearby::proto::connections::Medium medium(int index) const;
  void set_medium(int index, ::location::nearby::proto::connections::Medium value);
  void add_medium(::location::nearby::proto::connections::Medium value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& medium() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_medium();

  // repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest received_connection_request = 3;
  int received_connection_request_size() const;
  private:
  int _internal_received_connection_request_size() const;
  public:
  void clear_received_connection_request();
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* mutable_received_connection_request(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >*
      mutable_received_connection_request();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& _internal_received_connection_request(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* _internal_add_received_connection_request();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& received_connection_request(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* add_received_connection_request();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >&
      received_connection_request() const;

  // optional .location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata advertising_metadata = 5;
  bool has_advertising_metadata() const;
  private:
  bool _internal_has_advertising_metadata() const;
  public:
  void clear_advertising_metadata();
  const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata& advertising_metadata() const;
  PROTOBUF_NODISCARD ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* release_advertising_metadata();
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* mutable_advertising_metadata();
  void set_allocated_advertising_metadata(::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* advertising_metadata);
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata& _internal_advertising_metadata() const;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* _internal_mutable_advertising_metadata();
  public:
  void unsafe_arena_set_allocated_advertising_metadata(
      ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* advertising_metadata);
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* unsafe_arena_release_advertising_metadata();

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int64 client_flow_id = 4;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> medium_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest > received_connection_request_;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* advertising_metadata_;
  int64_t duration_millis_;
  int64_t client_flow_id_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_ConnectionRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest) */ {
 public:
  inline ConnectionsLog_ConnectionRequest() : ConnectionsLog_ConnectionRequest(nullptr) {}
  ~ConnectionsLog_ConnectionRequest() override;
  explicit constexpr ConnectionsLog_ConnectionRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_ConnectionRequest(const ConnectionsLog_ConnectionRequest& from);
  ConnectionsLog_ConnectionRequest(ConnectionsLog_ConnectionRequest&& from) noexcept
    : ConnectionsLog_ConnectionRequest() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_ConnectionRequest& operator=(const ConnectionsLog_ConnectionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_ConnectionRequest& operator=(ConnectionsLog_ConnectionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_ConnectionRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_ConnectionRequest* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_ConnectionRequest*>(
               &_ConnectionsLog_ConnectionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(ConnectionsLog_ConnectionRequest& a, ConnectionsLog_ConnectionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_ConnectionRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_ConnectionRequest* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_ConnectionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_ConnectionRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_ConnectionRequest& from);
  void MergeFrom(const ConnectionsLog_ConnectionRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_ConnectionRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest";
  }
  protected:
  explicit ConnectionsLog_ConnectionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kDurationMillisFieldNumber = 1,
    kRequestDelayMillisFieldNumber = 2,
    kLocalResponseFieldNumber = 3,
    kRemoteResponseFieldNumber = 4,
    kClientFlowIdFieldNumber = 5,
  };
  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int64 request_delay_millis = 2;
  bool has_request_delay_millis() const;
  private:
  bool _internal_has_request_delay_millis() const;
  public:
  void clear_request_delay_millis();
  int64_t request_delay_millis() const;
  void set_request_delay_millis(int64_t value);
  private:
  int64_t _internal_request_delay_millis() const;
  void _internal_set_request_delay_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.ConnectionRequestResponse local_response = 3;
  bool has_local_response() const;
  private:
  bool _internal_has_local_response() const;
  public:
  void clear_local_response();
  ::location::nearby::proto::connections::ConnectionRequestResponse local_response() const;
  void set_local_response(::location::nearby::proto::connections::ConnectionRequestResponse value);
  private:
  ::location::nearby::proto::connections::ConnectionRequestResponse _internal_local_response() const;
  void _internal_set_local_response(::location::nearby::proto::connections::ConnectionRequestResponse value);
  public:

  // optional .location.nearby.proto.connections.ConnectionRequestResponse remote_response = 4;
  bool has_remote_response() const;
  private:
  bool _internal_has_remote_response() const;
  public:
  void clear_remote_response();
  ::location::nearby::proto::connections::ConnectionRequestResponse remote_response() const;
  void set_remote_response(::location::nearby::proto::connections::ConnectionRequestResponse value);
  private:
  ::location::nearby::proto::connections::ConnectionRequestResponse _internal_remote_response() const;
  void _internal_set_remote_response(::location::nearby::proto::connections::ConnectionRequestResponse value);
  public:

  // optional int64 client_flow_id = 5;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int64_t duration_millis_;
  int64_t request_delay_millis_;
  int local_response_;
  int remote_response_;
  int64_t client_flow_id_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_ConnectionAttempt final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt) */ {
 public:
  inline ConnectionsLog_ConnectionAttempt() : ConnectionsLog_ConnectionAttempt(nullptr) {}
  ~ConnectionsLog_ConnectionAttempt() override;
  explicit constexpr ConnectionsLog_ConnectionAttempt(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_ConnectionAttempt(const ConnectionsLog_ConnectionAttempt& from);
  ConnectionsLog_ConnectionAttempt(ConnectionsLog_ConnectionAttempt&& from) noexcept
    : ConnectionsLog_ConnectionAttempt() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_ConnectionAttempt& operator=(const ConnectionsLog_ConnectionAttempt& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_ConnectionAttempt& operator=(ConnectionsLog_ConnectionAttempt&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_ConnectionAttempt& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_ConnectionAttempt* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_ConnectionAttempt*>(
               &_ConnectionsLog_ConnectionAttempt_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(ConnectionsLog_ConnectionAttempt& a, ConnectionsLog_ConnectionAttempt& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_ConnectionAttempt* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_ConnectionAttempt* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_ConnectionAttempt* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_ConnectionAttempt>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_ConnectionAttempt& from);
  void MergeFrom(const ConnectionsLog_ConnectionAttempt& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_ConnectionAttempt* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt";
  }
  protected:
  explicit ConnectionsLog_ConnectionAttempt(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kConnectionTokenFieldNumber = 7,
    kConnectionAttemptMetadataFieldNumber = 8,
    kDurationMillisFieldNumber = 1,
    kTypeFieldNumber = 2,
    kDirectionFieldNumber = 3,
    kMediumFieldNumber = 4,
    kAttemptResultFieldNumber = 5,
    kClientFlowIdFieldNumber = 6,
  };
  // optional string connection_token = 7;
  bool has_connection_token() const;
  private:
  bool _internal_has_connection_token() const;
  public:
  void clear_connection_token();
  const std::string& connection_token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_connection_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_connection_token();
  PROTOBUF_NODISCARD std::string* release_connection_token();
  void set_allocated_connection_token(std::string* connection_token);
  private:
  const std::string& _internal_connection_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_connection_token(const std::string& value);
  std::string* _internal_mutable_connection_token();
  public:

  // optional .location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata connection_attempt_metadata = 8;
  bool has_connection_attempt_metadata() const;
  private:
  bool _internal_has_connection_attempt_metadata() const;
  public:
  void clear_connection_attempt_metadata();
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata& connection_attempt_metadata() const;
  PROTOBUF_NODISCARD ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* release_connection_attempt_metadata();
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* mutable_connection_attempt_metadata();
  void set_allocated_connection_attempt_metadata(::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* connection_attempt_metadata);
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata& _internal_connection_attempt_metadata() const;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* _internal_mutable_connection_attempt_metadata();
  public:
  void unsafe_arena_set_allocated_connection_attempt_metadata(
      ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* connection_attempt_metadata);
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* unsafe_arena_release_connection_attempt_metadata();

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptType type = 2;
  bool has_type() const;
  private:
  bool _internal_has_type() const;
  public:
  void clear_type();
  ::location::nearby::proto::connections::ConnectionAttemptType type() const;
  void set_type(::location::nearby::proto::connections::ConnectionAttemptType value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptType _internal_type() const;
  void _internal_set_type(::location::nearby::proto::connections::ConnectionAttemptType value);
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 3;
  bool has_direction() const;
  private:
  bool _internal_has_direction() const;
  public:
  void clear_direction();
  ::location::nearby::proto::connections::ConnectionAttemptDirection direction() const;
  void set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptDirection _internal_direction() const;
  void _internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  public:

  // optional .location.nearby.proto.connections.Medium medium = 4;
  bool has_medium() const;
  private:
  bool _internal_has_medium() const;
  public:
  void clear_medium();
  ::location::nearby::proto::connections::Medium medium() const;
  void set_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_medium() const;
  void _internal_set_medium(::location::nearby::proto::connections::Medium value);
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptResult attempt_result = 5;
  bool has_attempt_result() const;
  private:
  bool _internal_has_attempt_result() const;
  public:
  void clear_attempt_result();
  ::location::nearby::proto::connections::ConnectionAttemptResult attempt_result() const;
  void set_attempt_result(::location::nearby::proto::connections::ConnectionAttemptResult value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptResult _internal_attempt_result() const;
  void _internal_set_attempt_result(::location::nearby::proto::connections::ConnectionAttemptResult value);
  public:

  // optional int64 client_flow_id = 6;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_token_;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* connection_attempt_metadata_;
  int64_t duration_millis_;
  int type_;
  int direction_;
  int medium_;
  int attempt_result_;
  int64_t client_flow_id_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_EstablishedConnection final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection) */ {
 public:
  inline ConnectionsLog_EstablishedConnection() : ConnectionsLog_EstablishedConnection(nullptr) {}
  ~ConnectionsLog_EstablishedConnection() override;
  explicit constexpr ConnectionsLog_EstablishedConnection(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_EstablishedConnection(const ConnectionsLog_EstablishedConnection& from);
  ConnectionsLog_EstablishedConnection(ConnectionsLog_EstablishedConnection&& from) noexcept
    : ConnectionsLog_EstablishedConnection() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_EstablishedConnection& operator=(const ConnectionsLog_EstablishedConnection& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_EstablishedConnection& operator=(ConnectionsLog_EstablishedConnection&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_EstablishedConnection& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_EstablishedConnection* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_EstablishedConnection*>(
               &_ConnectionsLog_EstablishedConnection_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(ConnectionsLog_EstablishedConnection& a, ConnectionsLog_EstablishedConnection& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_EstablishedConnection* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_EstablishedConnection* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_EstablishedConnection* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_EstablishedConnection>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_EstablishedConnection& from);
  void MergeFrom(const ConnectionsLog_EstablishedConnection& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_EstablishedConnection* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection";
  }
  protected:
  explicit ConnectionsLog_EstablishedConnection(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef ConnectionsLog_EstablishedConnection_SafeDisconnectionResult SafeDisconnectionResult;
  static constexpr SafeDisconnectionResult UNKNOWN_SAFE_DISCONNECTION_RESULT =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNKNOWN_SAFE_DISCONNECTION_RESULT;
  static constexpr SafeDisconnectionResult SAFE_DISCONNECTION =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SAFE_DISCONNECTION;
  static constexpr SafeDisconnectionResult UNSAFE_DISCONNECTION =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_UNSAFE_DISCONNECTION;
  static inline bool SafeDisconnectionResult_IsValid(int value) {
    return ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_IsValid(value);
  }
  static constexpr SafeDisconnectionResult SafeDisconnectionResult_MIN =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_MIN;
  static constexpr SafeDisconnectionResult SafeDisconnectionResult_MAX =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_MAX;
  static constexpr int SafeDisconnectionResult_ARRAYSIZE =
    ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_SafeDisconnectionResult_ARRAYSIZE;
  template<typename T>
  static inline const std::string& SafeDisconnectionResult_Name(T enum_t_value) {
    static_assert(::std::is_same<T, SafeDisconnectionResult>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function SafeDisconnectionResult_Name.");
    return ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Name(enum_t_value);
  }
  static inline bool SafeDisconnectionResult_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      SafeDisconnectionResult* value) {
    return ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kSentPayloadFieldNumber = 3,
    kReceivedPayloadFieldNumber = 4,
    kConnectionTokenFieldNumber = 7,
    kDurationMillisFieldNumber = 1,
    kMediumFieldNumber = 2,
    kDisconnectionReasonFieldNumber = 5,
    kClientFlowIdFieldNumber = 6,
    kTypeFieldNumber = 8,
    kSafeDisconnectionResultFieldNumber = 9,
  };
  // repeated .location.nearby.analytics.proto.ConnectionsLog.Payload sent_payload = 3;
  int sent_payload_size() const;
  private:
  int _internal_sent_payload_size() const;
  public:
  void clear_sent_payload();
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* mutable_sent_payload(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >*
      mutable_sent_payload();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_Payload& _internal_sent_payload(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* _internal_add_sent_payload();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_Payload& sent_payload(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* add_sent_payload();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >&
      sent_payload() const;

  // repeated .location.nearby.analytics.proto.ConnectionsLog.Payload received_payload = 4;
  int received_payload_size() const;
  private:
  int _internal_received_payload_size() const;
  public:
  void clear_received_payload();
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* mutable_received_payload(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >*
      mutable_received_payload();
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_Payload& _internal_received_payload(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* _internal_add_received_payload();
  public:
  const ::location::nearby::analytics::proto::ConnectionsLog_Payload& received_payload(int index) const;
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* add_received_payload();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >&
      received_payload() const;

  // optional string connection_token = 7;
  bool has_connection_token() const;
  private:
  bool _internal_has_connection_token() const;
  public:
  void clear_connection_token();
  const std::string& connection_token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_connection_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_connection_token();
  PROTOBUF_NODISCARD std::string* release_connection_token();
  void set_allocated_connection_token(std::string* connection_token);
  private:
  const std::string& _internal_connection_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_connection_token(const std::string& value);
  std::string* _internal_mutable_connection_token();
  public:

  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.Medium medium = 2;
  bool has_medium() const;
  private:
  bool _internal_has_medium() const;
  public:
  void clear_medium();
  ::location::nearby::proto::connections::Medium medium() const;
  void set_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_medium() const;
  void _internal_set_medium(::location::nearby::proto::connections::Medium value);
  public:

  // optional .location.nearby.proto.connections.DisconnectionReason disconnection_reason = 5;
  bool has_disconnection_reason() const;
  private:
  bool _internal_has_disconnection_reason() const;
  public:
  void clear_disconnection_reason();
  ::location::nearby::proto::connections::DisconnectionReason disconnection_reason() const;
  void set_disconnection_reason(::location::nearby::proto::connections::DisconnectionReason value);
  private:
  ::location::nearby::proto::connections::DisconnectionReason _internal_disconnection_reason() const;
  void _internal_set_disconnection_reason(::location::nearby::proto::connections::DisconnectionReason value);
  public:

  // optional int64 client_flow_id = 6;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptType type = 8;
  bool has_type() const;
  private:
  bool _internal_has_type() const;
  public:
  void clear_type();
  ::location::nearby::proto::connections::ConnectionAttemptType type() const;
  void set_type(::location::nearby::proto::connections::ConnectionAttemptType value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptType _internal_type() const;
  void _internal_set_type(::location::nearby::proto::connections::ConnectionAttemptType value);
  public:

  // optional .location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.SafeDisconnectionResult safe_disconnection_result = 9;
  bool has_safe_disconnection_result() const;
  private:
  bool _internal_has_safe_disconnection_result() const;
  public:
  void clear_safe_disconnection_result();
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult safe_disconnection_result() const;
  void set_safe_disconnection_result(::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult value);
  private:
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult _internal_safe_disconnection_result() const;
  void _internal_set_safe_disconnection_result(::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload > sent_payload_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload > received_payload_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_token_;
  int64_t duration_millis_;
  int medium_;
  int disconnection_reason_;
  int64_t client_flow_id_;
  int type_;
  int safe_disconnection_result_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_Payload final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.Payload) */ {
 public:
  inline ConnectionsLog_Payload() : ConnectionsLog_Payload(nullptr) {}
  ~ConnectionsLog_Payload() override;
  explicit constexpr ConnectionsLog_Payload(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_Payload(const ConnectionsLog_Payload& from);
  ConnectionsLog_Payload(ConnectionsLog_Payload&& from) noexcept
    : ConnectionsLog_Payload() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_Payload& operator=(const ConnectionsLog_Payload& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_Payload& operator=(ConnectionsLog_Payload&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_Payload& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_Payload* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_Payload*>(
               &_ConnectionsLog_Payload_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(ConnectionsLog_Payload& a, ConnectionsLog_Payload& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_Payload* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_Payload* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_Payload* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_Payload>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_Payload& from);
  void MergeFrom(const ConnectionsLog_Payload& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_Payload* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.Payload";
  }
  protected:
  explicit ConnectionsLog_Payload(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kDurationMillisFieldNumber = 1,
    kTotalSizeBytesFieldNumber = 3,
    kTypeFieldNumber = 2,
    kNumChunksFieldNumber = 5,
    kNumBytesTransferredFieldNumber = 4,
    kStatusFieldNumber = 6,
    kNumSuccessfulAutoResumeFieldNumber = 7,
  };
  // optional int64 duration_millis = 1;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional int64 total_size_bytes = 3;
  bool has_total_size_bytes() const;
  private:
  bool _internal_has_total_size_bytes() const;
  public:
  void clear_total_size_bytes();
  int64_t total_size_bytes() const;
  void set_total_size_bytes(int64_t value);
  private:
  int64_t _internal_total_size_bytes() const;
  void _internal_set_total_size_bytes(int64_t value);
  public:

  // optional .location.nearby.proto.connections.PayloadType type = 2;
  bool has_type() const;
  private:
  bool _internal_has_type() const;
  public:
  void clear_type();
  ::location::nearby::proto::connections::PayloadType type() const;
  void set_type(::location::nearby::proto::connections::PayloadType value);
  private:
  ::location::nearby::proto::connections::PayloadType _internal_type() const;
  void _internal_set_type(::location::nearby::proto::connections::PayloadType value);
  public:

  // optional int32 num_chunks = 5;
  bool has_num_chunks() const;
  private:
  bool _internal_has_num_chunks() const;
  public:
  void clear_num_chunks();
  int32_t num_chunks() const;
  void set_num_chunks(int32_t value);
  private:
  int32_t _internal_num_chunks() const;
  void _internal_set_num_chunks(int32_t value);
  public:

  // optional int64 num_bytes_transferred = 4;
  bool has_num_bytes_transferred() const;
  private:
  bool _internal_has_num_bytes_transferred() const;
  public:
  void clear_num_bytes_transferred();
  int64_t num_bytes_transferred() const;
  void set_num_bytes_transferred(int64_t value);
  private:
  int64_t _internal_num_bytes_transferred() const;
  void _internal_set_num_bytes_transferred(int64_t value);
  public:

  // optional .location.nearby.proto.connections.PayloadStatus status = 6;
  bool has_status() const;
  private:
  bool _internal_has_status() const;
  public:
  void clear_status();
  ::location::nearby::proto::connections::PayloadStatus status() const;
  void set_status(::location::nearby::proto::connections::PayloadStatus value);
  private:
  ::location::nearby::proto::connections::PayloadStatus _internal_status() const;
  void _internal_set_status(::location::nearby::proto::connections::PayloadStatus value);
  public:

  // optional int32 num_successful_auto_resume = 7;
  bool has_num_successful_auto_resume() const;
  private:
  bool _internal_has_num_successful_auto_resume() const;
  public:
  void clear_num_successful_auto_resume();
  int32_t num_successful_auto_resume() const;
  void set_num_successful_auto_resume(int32_t value);
  private:
  int32_t _internal_num_successful_auto_resume() const;
  void _internal_set_num_successful_auto_resume(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.Payload)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int64_t duration_millis_;
  int64_t total_size_bytes_;
  int type_;
  int32_t num_chunks_;
  int64_t num_bytes_transferred_;
  int status_;
  int32_t num_successful_auto_resume_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_BandwidthUpgradeAttempt final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt) */ {
 public:
  inline ConnectionsLog_BandwidthUpgradeAttempt() : ConnectionsLog_BandwidthUpgradeAttempt(nullptr) {}
  ~ConnectionsLog_BandwidthUpgradeAttempt() override;
  explicit constexpr ConnectionsLog_BandwidthUpgradeAttempt(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_BandwidthUpgradeAttempt(const ConnectionsLog_BandwidthUpgradeAttempt& from);
  ConnectionsLog_BandwidthUpgradeAttempt(ConnectionsLog_BandwidthUpgradeAttempt&& from) noexcept
    : ConnectionsLog_BandwidthUpgradeAttempt() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_BandwidthUpgradeAttempt& operator=(const ConnectionsLog_BandwidthUpgradeAttempt& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_BandwidthUpgradeAttempt& operator=(ConnectionsLog_BandwidthUpgradeAttempt&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_BandwidthUpgradeAttempt& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_BandwidthUpgradeAttempt* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_BandwidthUpgradeAttempt*>(
               &_ConnectionsLog_BandwidthUpgradeAttempt_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(ConnectionsLog_BandwidthUpgradeAttempt& a, ConnectionsLog_BandwidthUpgradeAttempt& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_BandwidthUpgradeAttempt* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_BandwidthUpgradeAttempt* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_BandwidthUpgradeAttempt* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_BandwidthUpgradeAttempt>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_BandwidthUpgradeAttempt& from);
  void MergeFrom(const ConnectionsLog_BandwidthUpgradeAttempt& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_BandwidthUpgradeAttempt* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt";
  }
  protected:
  explicit ConnectionsLog_BandwidthUpgradeAttempt(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kConnectionTokenFieldNumber = 8,
    kDurationMillisFieldNumber = 2,
    kDirectionFieldNumber = 1,
    kFromMediumFieldNumber = 3,
    kToMediumFieldNumber = 4,
    kUpgradeResultFieldNumber = 5,
    kClientFlowIdFieldNumber = 7,
    kErrorStageFieldNumber = 6,
  };
  // optional string connection_token = 8;
  bool has_connection_token() const;
  private:
  bool _internal_has_connection_token() const;
  public:
  void clear_connection_token();
  const std::string& connection_token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_connection_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_connection_token();
  PROTOBUF_NODISCARD std::string* release_connection_token();
  void set_allocated_connection_token(std::string* connection_token);
  private:
  const std::string& _internal_connection_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_connection_token(const std::string& value);
  std::string* _internal_mutable_connection_token();
  public:

  // optional int64 duration_millis = 2;
  bool has_duration_millis() const;
  private:
  bool _internal_has_duration_millis() const;
  public:
  void clear_duration_millis();
  int64_t duration_millis() const;
  void set_duration_millis(int64_t value);
  private:
  int64_t _internal_duration_millis() const;
  void _internal_set_duration_millis(int64_t value);
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 1;
  bool has_direction() const;
  private:
  bool _internal_has_direction() const;
  public:
  void clear_direction();
  ::location::nearby::proto::connections::ConnectionAttemptDirection direction() const;
  void set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptDirection _internal_direction() const;
  void _internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  public:

  // optional .location.nearby.proto.connections.Medium from_medium = 3;
  bool has_from_medium() const;
  private:
  bool _internal_has_from_medium() const;
  public:
  void clear_from_medium();
  ::location::nearby::proto::connections::Medium from_medium() const;
  void set_from_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_from_medium() const;
  void _internal_set_from_medium(::location::nearby::proto::connections::Medium value);
  public:

  // optional .location.nearby.proto.connections.Medium to_medium = 4;
  bool has_to_medium() const;
  private:
  bool _internal_has_to_medium() const;
  public:
  void clear_to_medium();
  ::location::nearby::proto::connections::Medium to_medium() const;
  void set_to_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_to_medium() const;
  void _internal_set_to_medium(::location::nearby::proto::connections::Medium value);
  public:

  // optional .location.nearby.proto.connections.BandwidthUpgradeResult upgrade_result = 5;
  bool has_upgrade_result() const;
  private:
  bool _internal_has_upgrade_result() const;
  public:
  void clear_upgrade_result();
  ::location::nearby::proto::connections::BandwidthUpgradeResult upgrade_result() const;
  void set_upgrade_result(::location::nearby::proto::connections::BandwidthUpgradeResult value);
  private:
  ::location::nearby::proto::connections::BandwidthUpgradeResult _internal_upgrade_result() const;
  void _internal_set_upgrade_result(::location::nearby::proto::connections::BandwidthUpgradeResult value);
  public:

  // optional int64 client_flow_id = 7;
  bool has_client_flow_id() const;
  private:
  bool _internal_has_client_flow_id() const;
  public:
  void clear_client_flow_id();
  int64_t client_flow_id() const;
  void set_client_flow_id(int64_t value);
  private:
  int64_t _internal_client_flow_id() const;
  void _internal_set_client_flow_id(int64_t value);
  public:

  // optional .location.nearby.proto.connections.BandwidthUpgradeErrorStage error_stage = 6;
  bool has_error_stage() const;
  private:
  bool _internal_has_error_stage() const;
  public:
  void clear_error_stage();
  ::location::nearby::proto::connections::BandwidthUpgradeErrorStage error_stage() const;
  void set_error_stage(::location::nearby::proto::connections::BandwidthUpgradeErrorStage value);
  private:
  ::location::nearby::proto::connections::BandwidthUpgradeErrorStage _internal_error_stage() const;
  void _internal_set_error_stage(::location::nearby::proto::connections::BandwidthUpgradeErrorStage value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_token_;
  int64_t duration_millis_;
  int direction_;
  int from_medium_;
  int to_medium_;
  int upgrade_result_;
  int64_t client_flow_id_;
  int error_stage_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_ErrorCode final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.ErrorCode) */ {
 public:
  inline ConnectionsLog_ErrorCode() : ConnectionsLog_ErrorCode(nullptr) {}
  ~ConnectionsLog_ErrorCode() override;
  explicit constexpr ConnectionsLog_ErrorCode(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_ErrorCode(const ConnectionsLog_ErrorCode& from);
  ConnectionsLog_ErrorCode(ConnectionsLog_ErrorCode&& from) noexcept
    : ConnectionsLog_ErrorCode() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_ErrorCode& operator=(const ConnectionsLog_ErrorCode& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_ErrorCode& operator=(ConnectionsLog_ErrorCode&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_ErrorCode& default_instance() {
    return *internal_default_instance();
  }
  enum ErrorCodeDetailCase {
    kCommonError = 7,
    kStartAdvertisingError = 8,
    kStartDiscoveringError = 9,
    kStopAdvertisingError = 10,
    kStopDiscoveringError = 11,
    kStartListeningIncomingConnectionError = 12,
    kStopListeningIncomingConnectionError = 13,
    kConnectError = 14,
    kDisconnectError = 15,
    kSendPayloadError = 17,
    kReceivePayloadError = 18,
    kUpgradeError = 19,
    kAcceptConnectionError = 20,
    kRejectConnectionError = 21,
    ERRORCODEDETAIL_NOT_SET = 0,
  };

  static inline const ConnectionsLog_ErrorCode* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_ErrorCode*>(
               &_ConnectionsLog_ErrorCode_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(ConnectionsLog_ErrorCode& a, ConnectionsLog_ErrorCode& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_ErrorCode* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_ErrorCode* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_ErrorCode* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_ErrorCode>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_ErrorCode& from);
  void MergeFrom(const ConnectionsLog_ErrorCode& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_ErrorCode* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.ErrorCode";
  }
  protected:
  explicit ConnectionsLog_ErrorCode(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kServiceIdFieldNumber = 2,
    kConnectionTokenFieldNumber = 16,
    kDirectionFieldNumber = 1,
    kMediumFieldNumber = 3,
    kEventFieldNumber = 4,
    kDescriptionFieldNumber = 5,
    kFlowIdFieldNumber = 6,
    kCommonErrorFieldNumber = 7,
    kStartAdvertisingErrorFieldNumber = 8,
    kStartDiscoveringErrorFieldNumber = 9,
    kStopAdvertisingErrorFieldNumber = 10,
    kStopDiscoveringErrorFieldNumber = 11,
    kStartListeningIncomingConnectionErrorFieldNumber = 12,
    kStopListeningIncomingConnectionErrorFieldNumber = 13,
    kConnectErrorFieldNumber = 14,
    kDisconnectErrorFieldNumber = 15,
    kSendPayloadErrorFieldNumber = 17,
    kReceivePayloadErrorFieldNumber = 18,
    kUpgradeErrorFieldNumber = 19,
    kAcceptConnectionErrorFieldNumber = 20,
    kRejectConnectionErrorFieldNumber = 21,
  };
  // optional string service_id = 2;
  bool has_service_id() const;
  private:
  bool _internal_has_service_id() const;
  public:
  void clear_service_id();
  const std::string& service_id() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_service_id(ArgT0&& arg0, ArgT... args);
  std::string* mutable_service_id();
  PROTOBUF_NODISCARD std::string* release_service_id();
  void set_allocated_service_id(std::string* service_id);
  private:
  const std::string& _internal_service_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_service_id(const std::string& value);
  std::string* _internal_mutable_service_id();
  public:

  // optional string connection_token = 16;
  bool has_connection_token() const;
  private:
  bool _internal_has_connection_token() const;
  public:
  void clear_connection_token();
  const std::string& connection_token() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_connection_token(ArgT0&& arg0, ArgT... args);
  std::string* mutable_connection_token();
  PROTOBUF_NODISCARD std::string* release_connection_token();
  void set_allocated_connection_token(std::string* connection_token);
  private:
  const std::string& _internal_connection_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_connection_token(const std::string& value);
  std::string* _internal_mutable_connection_token();
  public:

  // optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 1;
  bool has_direction() const;
  private:
  bool _internal_has_direction() const;
  public:
  void clear_direction();
  ::location::nearby::proto::connections::ConnectionAttemptDirection direction() const;
  void set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  private:
  ::location::nearby::proto::connections::ConnectionAttemptDirection _internal_direction() const;
  void _internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value);
  public:

  // optional .location.nearby.proto.connections.Medium medium = 3;
  bool has_medium() const;
  private:
  bool _internal_has_medium() const;
  public:
  void clear_medium();
  ::location::nearby::proto::connections::Medium medium() const;
  void set_medium(::location::nearby::proto::connections::Medium value);
  private:
  ::location::nearby::proto::connections::Medium _internal_medium() const;
  void _internal_set_medium(::location::nearby::proto::connections::Medium value);
  public:

  // optional .location.nearby.errorcode.proto.Event event = 4;
  bool has_event() const;
  private:
  bool _internal_has_event() const;
  public:
  void clear_event();
  ::location::nearby::errorcode::proto::Event event() const;
  void set_event(::location::nearby::errorcode::proto::Event value);
  private:
  ::location::nearby::errorcode::proto::Event _internal_event() const;
  void _internal_set_event(::location::nearby::errorcode::proto::Event value);
  public:

  // optional .location.nearby.errorcode.proto.Description description = 5;
  bool has_description() const;
  private:
  bool _internal_has_description() const;
  public:
  void clear_description();
  ::location::nearby::errorcode::proto::Description description() const;
  void set_description(::location::nearby::errorcode::proto::Description value);
  private:
  ::location::nearby::errorcode::proto::Description _internal_description() const;
  void _internal_set_description(::location::nearby::errorcode::proto::Description value);
  public:

  // optional int64 flow_id = 6;
  bool has_flow_id() const;
  private:
  bool _internal_has_flow_id() const;
  public:
  void clear_flow_id();
  int64_t flow_id() const;
  void set_flow_id(int64_t value);
  private:
  int64_t _internal_flow_id() const;
  void _internal_set_flow_id(int64_t value);
  public:

  // .location.nearby.errorcode.proto.CommonError common_error = 7;
  bool has_common_error() const;
  private:
  bool _internal_has_common_error() const;
  public:
  void clear_common_error();
  ::location::nearby::errorcode::proto::CommonError common_error() const;
  void set_common_error(::location::nearby::errorcode::proto::CommonError value);
  private:
  ::location::nearby::errorcode::proto::CommonError _internal_common_error() const;
  void _internal_set_common_error(::location::nearby::errorcode::proto::CommonError value);
  public:

  // .location.nearby.errorcode.proto.StartAdvertisingError start_advertising_error = 8;
  bool has_start_advertising_error() const;
  private:
  bool _internal_has_start_advertising_error() const;
  public:
  void clear_start_advertising_error();
  ::location::nearby::errorcode::proto::StartAdvertisingError start_advertising_error() const;
  void set_start_advertising_error(::location::nearby::errorcode::proto::StartAdvertisingError value);
  private:
  ::location::nearby::errorcode::proto::StartAdvertisingError _internal_start_advertising_error() const;
  void _internal_set_start_advertising_error(::location::nearby::errorcode::proto::StartAdvertisingError value);
  public:

  // .location.nearby.errorcode.proto.StartDiscoveringError start_discovering_error = 9;
  bool has_start_discovering_error() const;
  private:
  bool _internal_has_start_discovering_error() const;
  public:
  void clear_start_discovering_error();
  ::location::nearby::errorcode::proto::StartDiscoveringError start_discovering_error() const;
  void set_start_discovering_error(::location::nearby::errorcode::proto::StartDiscoveringError value);
  private:
  ::location::nearby::errorcode::proto::StartDiscoveringError _internal_start_discovering_error() const;
  void _internal_set_start_discovering_error(::location::nearby::errorcode::proto::StartDiscoveringError value);
  public:

  // .location.nearby.errorcode.proto.StopAdvertisingError stop_advertising_error = 10;
  bool has_stop_advertising_error() const;
  private:
  bool _internal_has_stop_advertising_error() const;
  public:
  void clear_stop_advertising_error();
  ::location::nearby::errorcode::proto::StopAdvertisingError stop_advertising_error() const;
  void set_stop_advertising_error(::location::nearby::errorcode::proto::StopAdvertisingError value);
  private:
  ::location::nearby::errorcode::proto::StopAdvertisingError _internal_stop_advertising_error() const;
  void _internal_set_stop_advertising_error(::location::nearby::errorcode::proto::StopAdvertisingError value);
  public:

  // .location.nearby.errorcode.proto.StopDiscoveringError stop_discovering_error = 11;
  bool has_stop_discovering_error() const;
  private:
  bool _internal_has_stop_discovering_error() const;
  public:
  void clear_stop_discovering_error();
  ::location::nearby::errorcode::proto::StopDiscoveringError stop_discovering_error() const;
  void set_stop_discovering_error(::location::nearby::errorcode::proto::StopDiscoveringError value);
  private:
  ::location::nearby::errorcode::proto::StopDiscoveringError _internal_stop_discovering_error() const;
  void _internal_set_stop_discovering_error(::location::nearby::errorcode::proto::StopDiscoveringError value);
  public:

  // .location.nearby.errorcode.proto.StartListeningIncomingConnectionError start_listening_incoming_connection_error = 12;
  bool has_start_listening_incoming_connection_error() const;
  private:
  bool _internal_has_start_listening_incoming_connection_error() const;
  public:
  void clear_start_listening_incoming_connection_error();
  ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError start_listening_incoming_connection_error() const;
  void set_start_listening_incoming_connection_error(::location::nearby::errorcode::proto::StartListeningIncomingConnectionError value);
  private:
  ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError _internal_start_listening_incoming_connection_error() const;
  void _internal_set_start_listening_incoming_connection_error(::location::nearby::errorcode::proto::StartListeningIncomingConnectionError value);
  public:

  // .location.nearby.errorcode.proto.StopListeningIncomingConnectionError stop_listening_incoming_connection_error = 13;
  bool has_stop_listening_incoming_connection_error() const;
  private:
  bool _internal_has_stop_listening_incoming_connection_error() const;
  public:
  void clear_stop_listening_incoming_connection_error();
  ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError stop_listening_incoming_connection_error() const;
  void set_stop_listening_incoming_connection_error(::location::nearby::errorcode::proto::StopListeningIncomingConnectionError value);
  private:
  ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError _internal_stop_listening_incoming_connection_error() const;
  void _internal_set_stop_listening_incoming_connection_error(::location::nearby::errorcode::proto::StopListeningIncomingConnectionError value);
  public:

  // .location.nearby.errorcode.proto.ConnectError connect_error = 14;
  bool has_connect_error() const;
  private:
  bool _internal_has_connect_error() const;
  public:
  void clear_connect_error();
  ::location::nearby::errorcode::proto::ConnectError connect_error() const;
  void set_connect_error(::location::nearby::errorcode::proto::ConnectError value);
  private:
  ::location::nearby::errorcode::proto::ConnectError _internal_connect_error() const;
  void _internal_set_connect_error(::location::nearby::errorcode::proto::ConnectError value);
  public:

  // .location.nearby.errorcode.proto.DisconnectError disconnect_error = 15;
  bool has_disconnect_error() const;
  private:
  bool _internal_has_disconnect_error() const;
  public:
  void clear_disconnect_error();
  ::location::nearby::errorcode::proto::DisconnectError disconnect_error() const;
  void set_disconnect_error(::location::nearby::errorcode::proto::DisconnectError value);
  private:
  ::location::nearby::errorcode::proto::DisconnectError _internal_disconnect_error() const;
  void _internal_set_disconnect_error(::location::nearby::errorcode::proto::DisconnectError value);
  public:

  // .location.nearby.errorcode.proto.SendPayloadError send_payload_error = 17;
  bool has_send_payload_error() const;
  private:
  bool _internal_has_send_payload_error() const;
  public:
  void clear_send_payload_error();
  ::location::nearby::errorcode::proto::SendPayloadError send_payload_error() const;
  void set_send_payload_error(::location::nearby::errorcode::proto::SendPayloadError value);
  private:
  ::location::nearby::errorcode::proto::SendPayloadError _internal_send_payload_error() const;
  void _internal_set_send_payload_error(::location::nearby::errorcode::proto::SendPayloadError value);
  public:

  // .location.nearby.errorcode.proto.ReceivePayloadError receive_payload_error = 18;
  bool has_receive_payload_error() const;
  private:
  bool _internal_has_receive_payload_error() const;
  public:
  void clear_receive_payload_error();
  ::location::nearby::errorcode::proto::ReceivePayloadError receive_payload_error() const;
  void set_receive_payload_error(::location::nearby::errorcode::proto::ReceivePayloadError value);
  private:
  ::location::nearby::errorcode::proto::ReceivePayloadError _internal_receive_payload_error() const;
  void _internal_set_receive_payload_error(::location::nearby::errorcode::proto::ReceivePayloadError value);
  public:

  // .location.nearby.errorcode.proto.UpgradeError upgrade_error = 19;
  bool has_upgrade_error() const;
  private:
  bool _internal_has_upgrade_error() const;
  public:
  void clear_upgrade_error();
  ::location::nearby::errorcode::proto::UpgradeError upgrade_error() const;
  void set_upgrade_error(::location::nearby::errorcode::proto::UpgradeError value);
  private:
  ::location::nearby::errorcode::proto::UpgradeError _internal_upgrade_error() const;
  void _internal_set_upgrade_error(::location::nearby::errorcode::proto::UpgradeError value);
  public:

  // .location.nearby.errorcode.proto.AcceptConnectionError accept_connection_error = 20;
  bool has_accept_connection_error() const;
  private:
  bool _internal_has_accept_connection_error() const;
  public:
  void clear_accept_connection_error();
  ::location::nearby::errorcode::proto::AcceptConnectionError accept_connection_error() const;
  void set_accept_connection_error(::location::nearby::errorcode::proto::AcceptConnectionError value);
  private:
  ::location::nearby::errorcode::proto::AcceptConnectionError _internal_accept_connection_error() const;
  void _internal_set_accept_connection_error(::location::nearby::errorcode::proto::AcceptConnectionError value);
  public:

  // .location.nearby.errorcode.proto.RejectConnectionError reject_connection_error = 21;
  bool has_reject_connection_error() const;
  private:
  bool _internal_has_reject_connection_error() const;
  public:
  void clear_reject_connection_error();
  ::location::nearby::errorcode::proto::RejectConnectionError reject_connection_error() const;
  void set_reject_connection_error(::location::nearby::errorcode::proto::RejectConnectionError value);
  private:
  ::location::nearby::errorcode::proto::RejectConnectionError _internal_reject_connection_error() const;
  void _internal_set_reject_connection_error(::location::nearby::errorcode::proto::RejectConnectionError value);
  public:

  void clear_ErrorCodeDetail();
  ErrorCodeDetailCase ErrorCodeDetail_case() const;
  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.ErrorCode)
 private:
  class _Internal;
  void set_has_common_error();
  void set_has_start_advertising_error();
  void set_has_start_discovering_error();
  void set_has_stop_advertising_error();
  void set_has_stop_discovering_error();
  void set_has_start_listening_incoming_connection_error();
  void set_has_stop_listening_incoming_connection_error();
  void set_has_connect_error();
  void set_has_disconnect_error();
  void set_has_send_payload_error();
  void set_has_receive_payload_error();
  void set_has_upgrade_error();
  void set_has_accept_connection_error();
  void set_has_reject_connection_error();

  inline bool has_ErrorCodeDetail() const;
  inline void clear_has_ErrorCodeDetail();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr service_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr connection_token_;
  int direction_;
  int medium_;
  int event_;
  int description_;
  int64_t flow_id_;
  union ErrorCodeDetailUnion {
    constexpr ErrorCodeDetailUnion() : _constinit_{} {}
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
    int common_error_;
    int start_advertising_error_;
    int start_discovering_error_;
    int stop_advertising_error_;
    int stop_discovering_error_;
    int start_listening_incoming_connection_error_;
    int stop_listening_incoming_connection_error_;
    int connect_error_;
    int disconnect_error_;
    int send_payload_error_;
    int receive_payload_error_;
    int upgrade_error_;
    int accept_connection_error_;
    int reject_connection_error_;
  } ErrorCodeDetail_;
  uint32_t _oneof_case_[1];

  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_AdvertisingMetadata final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata) */ {
 public:
  inline ConnectionsLog_AdvertisingMetadata() : ConnectionsLog_AdvertisingMetadata(nullptr) {}
  ~ConnectionsLog_AdvertisingMetadata() override;
  explicit constexpr ConnectionsLog_AdvertisingMetadata(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_AdvertisingMetadata(const ConnectionsLog_AdvertisingMetadata& from);
  ConnectionsLog_AdvertisingMetadata(ConnectionsLog_AdvertisingMetadata&& from) noexcept
    : ConnectionsLog_AdvertisingMetadata() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_AdvertisingMetadata& operator=(const ConnectionsLog_AdvertisingMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_AdvertisingMetadata& operator=(ConnectionsLog_AdvertisingMetadata&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_AdvertisingMetadata& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_AdvertisingMetadata* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_AdvertisingMetadata*>(
               &_ConnectionsLog_AdvertisingMetadata_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(ConnectionsLog_AdvertisingMetadata& a, ConnectionsLog_AdvertisingMetadata& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_AdvertisingMetadata* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_AdvertisingMetadata* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_AdvertisingMetadata* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_AdvertisingMetadata>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_AdvertisingMetadata& from);
  void MergeFrom(const ConnectionsLog_AdvertisingMetadata& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_AdvertisingMetadata* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata";
  }
  protected:
  explicit ConnectionsLog_AdvertisingMetadata(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kConnectedApFrequencyFieldNumber = 2,
    kSupportsExtendedBleAdvertisementsFieldNumber = 1,
    kSupportsNfcTechnologyFieldNumber = 3,
    kMultipleAdvertisementSupportedFieldNumber = 4,
    kSupportsDualBandFieldNumber = 6,
    kPowerLevelFieldNumber = 5,
  };
  // optional int32 connected_ap_frequency = 2;
  bool has_connected_ap_frequency() const;
  private:
  bool _internal_has_connected_ap_frequency() const;
  public:
  void clear_connected_ap_frequency();
  int32_t connected_ap_frequency() const;
  void set_connected_ap_frequency(int32_t value);
  private:
  int32_t _internal_connected_ap_frequency() const;
  void _internal_set_connected_ap_frequency(int32_t value);
  public:

  // optional bool supports_extended_ble_advertisements = 1;
  bool has_supports_extended_ble_advertisements() const;
  private:
  bool _internal_has_supports_extended_ble_advertisements() const;
  public:
  void clear_supports_extended_ble_advertisements();
  bool supports_extended_ble_advertisements() const;
  void set_supports_extended_ble_advertisements(bool value);
  private:
  bool _internal_supports_extended_ble_advertisements() const;
  void _internal_set_supports_extended_ble_advertisements(bool value);
  public:

  // optional bool supports_nfc_technology = 3;
  bool has_supports_nfc_technology() const;
  private:
  bool _internal_has_supports_nfc_technology() const;
  public:
  void clear_supports_nfc_technology();
  bool supports_nfc_technology() const;
  void set_supports_nfc_technology(bool value);
  private:
  bool _internal_supports_nfc_technology() const;
  void _internal_set_supports_nfc_technology(bool value);
  public:

  // optional bool multiple_advertisement_supported = 4;
  bool has_multiple_advertisement_supported() const;
  private:
  bool _internal_has_multiple_advertisement_supported() const;
  public:
  void clear_multiple_advertisement_supported();
  bool multiple_advertisement_supported() const;
  void set_multiple_advertisement_supported(bool value);
  private:
  bool _internal_multiple_advertisement_supported() const;
  void _internal_set_multiple_advertisement_supported(bool value);
  public:

  // optional bool supports_dual_band = 6;
  bool has_supports_dual_band() const;
  private:
  bool _internal_has_supports_dual_band() const;
  public:
  void clear_supports_dual_band();
  bool supports_dual_band() const;
  void set_supports_dual_band(bool value);
  private:
  bool _internal_supports_dual_band() const;
  void _internal_set_supports_dual_band(bool value);
  public:

  // optional .location.nearby.proto.connections.PowerLevel power_level = 5;
  bool has_power_level() const;
  private:
  bool _internal_has_power_level() const;
  public:
  void clear_power_level();
  ::location::nearby::proto::connections::PowerLevel power_level() const;
  void set_power_level(::location::nearby::proto::connections::PowerLevel value);
  private:
  ::location::nearby::proto::connections::PowerLevel _internal_power_level() const;
  void _internal_set_power_level(::location::nearby::proto::connections::PowerLevel value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int32_t connected_ap_frequency_;
  bool supports_extended_ble_advertisements_;
  bool supports_nfc_technology_;
  bool multiple_advertisement_supported_;
  bool supports_dual_band_;
  int power_level_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_DiscoveryMetadata final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata) */ {
 public:
  inline ConnectionsLog_DiscoveryMetadata() : ConnectionsLog_DiscoveryMetadata(nullptr) {}
  ~ConnectionsLog_DiscoveryMetadata() override;
  explicit constexpr ConnectionsLog_DiscoveryMetadata(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_DiscoveryMetadata(const ConnectionsLog_DiscoveryMetadata& from);
  ConnectionsLog_DiscoveryMetadata(ConnectionsLog_DiscoveryMetadata&& from) noexcept
    : ConnectionsLog_DiscoveryMetadata() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_DiscoveryMetadata& operator=(const ConnectionsLog_DiscoveryMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_DiscoveryMetadata& operator=(ConnectionsLog_DiscoveryMetadata&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_DiscoveryMetadata& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_DiscoveryMetadata* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_DiscoveryMetadata*>(
               &_ConnectionsLog_DiscoveryMetadata_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(ConnectionsLog_DiscoveryMetadata& a, ConnectionsLog_DiscoveryMetadata& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_DiscoveryMetadata* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_DiscoveryMetadata* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_DiscoveryMetadata* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_DiscoveryMetadata>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_DiscoveryMetadata& from);
  void MergeFrom(const ConnectionsLog_DiscoveryMetadata& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_DiscoveryMetadata* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata";
  }
  protected:
  explicit ConnectionsLog_DiscoveryMetadata(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kConnectedApFrequencyFieldNumber = 2,
    kSupportsExtendedBleAdvertisementsFieldNumber = 1,
    kSupportsNfcTechnologyFieldNumber = 3,
    kPowerLevelFieldNumber = 4,
  };
  // optional int32 connected_ap_frequency = 2;
  bool has_connected_ap_frequency() const;
  private:
  bool _internal_has_connected_ap_frequency() const;
  public:
  void clear_connected_ap_frequency();
  int32_t connected_ap_frequency() const;
  void set_connected_ap_frequency(int32_t value);
  private:
  int32_t _internal_connected_ap_frequency() const;
  void _internal_set_connected_ap_frequency(int32_t value);
  public:

  // optional bool supports_extended_ble_advertisements = 1;
  bool has_supports_extended_ble_advertisements() const;
  private:
  bool _internal_has_supports_extended_ble_advertisements() const;
  public:
  void clear_supports_extended_ble_advertisements();
  bool supports_extended_ble_advertisements() const;
  void set_supports_extended_ble_advertisements(bool value);
  private:
  bool _internal_supports_extended_ble_advertisements() const;
  void _internal_set_supports_extended_ble_advertisements(bool value);
  public:

  // optional bool supports_nfc_technology = 3;
  bool has_supports_nfc_technology() const;
  private:
  bool _internal_has_supports_nfc_technology() const;
  public:
  void clear_supports_nfc_technology();
  bool supports_nfc_technology() const;
  void set_supports_nfc_technology(bool value);
  private:
  bool _internal_supports_nfc_technology() const;
  void _internal_set_supports_nfc_technology(bool value);
  public:

  // optional .location.nearby.proto.connections.PowerLevel power_level = 4;
  bool has_power_level() const;
  private:
  bool _internal_has_power_level() const;
  public:
  void clear_power_level();
  ::location::nearby::proto::connections::PowerLevel power_level() const;
  void set_power_level(::location::nearby::proto::connections::PowerLevel value);
  private:
  ::location::nearby::proto::connections::PowerLevel _internal_power_level() const;
  void _internal_set_power_level(::location::nearby::proto::connections::PowerLevel value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  int32_t connected_ap_frequency_;
  bool supports_extended_ble_advertisements_;
  bool supports_nfc_technology_;
  int power_level_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog_ConnectionAttemptMetadata final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata) */ {
 public:
  inline ConnectionsLog_ConnectionAttemptMetadata() : ConnectionsLog_ConnectionAttemptMetadata(nullptr) {}
  ~ConnectionsLog_ConnectionAttemptMetadata() override;
  explicit constexpr ConnectionsLog_ConnectionAttemptMetadata(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog_ConnectionAttemptMetadata(const ConnectionsLog_ConnectionAttemptMetadata& from);
  ConnectionsLog_ConnectionAttemptMetadata(ConnectionsLog_ConnectionAttemptMetadata&& from) noexcept
    : ConnectionsLog_ConnectionAttemptMetadata() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog_ConnectionAttemptMetadata& operator=(const ConnectionsLog_ConnectionAttemptMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog_ConnectionAttemptMetadata& operator=(ConnectionsLog_ConnectionAttemptMetadata&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog_ConnectionAttemptMetadata& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog_ConnectionAttemptMetadata* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog_ConnectionAttemptMetadata*>(
               &_ConnectionsLog_ConnectionAttemptMetadata_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(ConnectionsLog_ConnectionAttemptMetadata& a, ConnectionsLog_ConnectionAttemptMetadata& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog_ConnectionAttemptMetadata* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog_ConnectionAttemptMetadata* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog_ConnectionAttemptMetadata* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog_ConnectionAttemptMetadata>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog_ConnectionAttemptMetadata& from);
  void MergeFrom(const ConnectionsLog_ConnectionAttemptMetadata& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog_ConnectionAttemptMetadata* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata";
  }
  protected:
  explicit ConnectionsLog_ConnectionAttemptMetadata(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  // accessors -------------------------------------------------------

  enum : int {
    kNetworkOperatorFieldNumber = 4,
    kCountryCodeFieldNumber = 5,
    kTechnologyFieldNumber = 1,
    kBandFieldNumber = 2,
    kFrequencyFieldNumber = 3,
    kTryCountsFieldNumber = 7,
    kMaxTxSpeedFieldNumber = 9,
    kIsTdlsUsedFieldNumber = 6,
    kWifiHotspotStatusFieldNumber = 8,
    kIsMccModeFieldNumber = 15,
    kMaxRxSpeedFieldNumber = 10,
    kWifiChannelWidthFieldNumber = 11,
    kSendBufferSizeFieldNumber = 12,
    kReceiveBufferSizeFieldNumber = 13,
    kConnectedApFrequencyFieldNumber = 14,
  };
  // optional string network_operator = 4;
  bool has_network_operator() const;
  private:
  bool _internal_has_network_operator() const;
  public:
  void clear_network_operator();
  const std::string& network_operator() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_network_operator(ArgT0&& arg0, ArgT... args);
  std::string* mutable_network_operator();
  PROTOBUF_NODISCARD std::string* release_network_operator();
  void set_allocated_network_operator(std::string* network_operator);
  private:
  const std::string& _internal_network_operator() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_network_operator(const std::string& value);
  std::string* _internal_mutable_network_operator();
  public:

  // optional string country_code = 5;
  bool has_country_code() const;
  private:
  bool _internal_has_country_code() const;
  public:
  void clear_country_code();
  const std::string& country_code() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_country_code(ArgT0&& arg0, ArgT... args);
  std::string* mutable_country_code();
  PROTOBUF_NODISCARD std::string* release_country_code();
  void set_allocated_country_code(std::string* country_code);
  private:
  const std::string& _internal_country_code() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_country_code(const std::string& value);
  std::string* _internal_mutable_country_code();
  public:

  // optional .location.nearby.proto.connections.ConnectionTechnology technology = 1;
  bool has_technology() const;
  private:
  bool _internal_has_technology() const;
  public:
  void clear_technology();
  ::location::nearby::proto::connections::ConnectionTechnology technology() const;
  void set_technology(::location::nearby::proto::connections::ConnectionTechnology value);
  private:
  ::location::nearby::proto::connections::ConnectionTechnology _internal_technology() const;
  void _internal_set_technology(::location::nearby::proto::connections::ConnectionTechnology value);
  public:

  // optional .location.nearby.proto.connections.ConnectionBand band = 2;
  bool has_band() const;
  private:
  bool _internal_has_band() const;
  public:
  void clear_band();
  ::location::nearby::proto::connections::ConnectionBand band() const;
  void set_band(::location::nearby::proto::connections::ConnectionBand value);
  private:
  ::location::nearby::proto::connections::ConnectionBand _internal_band() const;
  void _internal_set_band(::location::nearby::proto::connections::ConnectionBand value);
  public:

  // optional int32 frequency = 3;
  bool has_frequency() const;
  private:
  bool _internal_has_frequency() const;
  public:
  void clear_frequency();
  int32_t frequency() const;
  void set_frequency(int32_t value);
  private:
  int32_t _internal_frequency() const;
  void _internal_set_frequency(int32_t value);
  public:

  // optional int32 try_counts = 7;
  bool has_try_counts() const;
  private:
  bool _internal_has_try_counts() const;
  public:
  void clear_try_counts();
  int32_t try_counts() const;
  void set_try_counts(int32_t value);
  private:
  int32_t _internal_try_counts() const;
  void _internal_set_try_counts(int32_t value);
  public:

  // optional int32 max_tx_speed = 9;
  bool has_max_tx_speed() const;
  private:
  bool _internal_has_max_tx_speed() const;
  public:
  void clear_max_tx_speed();
  int32_t max_tx_speed() const;
  void set_max_tx_speed(int32_t value);
  private:
  int32_t _internal_max_tx_speed() const;
  void _internal_set_max_tx_speed(int32_t value);
  public:

  // optional bool is_tdls_used = 6;
  bool has_is_tdls_used() const;
  private:
  bool _internal_has_is_tdls_used() const;
  public:
  void clear_is_tdls_used();
  bool is_tdls_used() const;
  void set_is_tdls_used(bool value);
  private:
  bool _internal_is_tdls_used() const;
  void _internal_set_is_tdls_used(bool value);
  public:

  // optional bool wifi_hotspot_status = 8;
  bool has_wifi_hotspot_status() const;
  private:
  bool _internal_has_wifi_hotspot_status() const;
  public:
  void clear_wifi_hotspot_status();
  bool wifi_hotspot_status() const;
  void set_wifi_hotspot_status(bool value);
  private:
  bool _internal_wifi_hotspot_status() const;
  void _internal_set_wifi_hotspot_status(bool value);
  public:

  // optional bool is_mcc_mode = 15;
  bool has_is_mcc_mode() const;
  private:
  bool _internal_has_is_mcc_mode() const;
  public:
  void clear_is_mcc_mode();
  bool is_mcc_mode() const;
  void set_is_mcc_mode(bool value);
  private:
  bool _internal_is_mcc_mode() const;
  void _internal_set_is_mcc_mode(bool value);
  public:

  // optional int32 max_rx_speed = 10;
  bool has_max_rx_speed() const;
  private:
  bool _internal_has_max_rx_speed() const;
  public:
  void clear_max_rx_speed();
  int32_t max_rx_speed() const;
  void set_max_rx_speed(int32_t value);
  private:
  int32_t _internal_max_rx_speed() const;
  void _internal_set_max_rx_speed(int32_t value);
  public:

  // optional int32 wifi_channel_width = 11;
  bool has_wifi_channel_width() const;
  private:
  bool _internal_has_wifi_channel_width() const;
  public:
  void clear_wifi_channel_width();
  int32_t wifi_channel_width() const;
  void set_wifi_channel_width(int32_t value);
  private:
  int32_t _internal_wifi_channel_width() const;
  void _internal_set_wifi_channel_width(int32_t value);
  public:

  // optional int32 send_buffer_size = 12;
  bool has_send_buffer_size() const;
  private:
  bool _internal_has_send_buffer_size() const;
  public:
  void clear_send_buffer_size();
  int32_t send_buffer_size() const;
  void set_send_buffer_size(int32_t value);
  private:
  int32_t _internal_send_buffer_size() const;
  void _internal_set_send_buffer_size(int32_t value);
  public:

  // optional int32 receive_buffer_size = 13;
  bool has_receive_buffer_size() const;
  private:
  bool _internal_has_receive_buffer_size() const;
  public:
  void clear_receive_buffer_size();
  int32_t receive_buffer_size() const;
  void set_receive_buffer_size(int32_t value);
  private:
  int32_t _internal_receive_buffer_size() const;
  void _internal_set_receive_buffer_size(int32_t value);
  public:

  // optional int32 connected_ap_frequency = 14;
  bool has_connected_ap_frequency() const;
  private:
  bool _internal_has_connected_ap_frequency() const;
  public:
  void clear_connected_ap_frequency();
  int32_t connected_ap_frequency() const;
  void set_connected_ap_frequency(int32_t value);
  private:
  int32_t _internal_connected_ap_frequency() const;
  void _internal_set_connected_ap_frequency(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr network_operator_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr country_code_;
  int technology_;
  int band_;
  int32_t frequency_;
  int32_t try_counts_;
  int32_t max_tx_speed_;
  bool is_tdls_used_;
  bool wifi_hotspot_status_;
  bool is_mcc_mode_;
  int32_t max_rx_speed_;
  int32_t wifi_channel_width_;
  int32_t send_buffer_size_;
  int32_t receive_buffer_size_;
  int32_t connected_ap_frequency_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// -------------------------------------------------------------------

class ConnectionsLog final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:location.nearby.analytics.proto.ConnectionsLog) */ {
 public:
  inline ConnectionsLog() : ConnectionsLog(nullptr) {}
  ~ConnectionsLog() override;
  explicit constexpr ConnectionsLog(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ConnectionsLog(const ConnectionsLog& from);
  ConnectionsLog(ConnectionsLog&& from) noexcept
    : ConnectionsLog() {
    *this = ::std::move(from);
  }

  inline ConnectionsLog& operator=(const ConnectionsLog& from) {
    CopyFrom(from);
    return *this;
  }
  inline ConnectionsLog& operator=(ConnectionsLog&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

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

  static const ConnectionsLog& default_instance() {
    return *internal_default_instance();
  }
  static inline const ConnectionsLog* internal_default_instance() {
    return reinterpret_cast<const ConnectionsLog*>(
               &_ConnectionsLog_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(ConnectionsLog& a, ConnectionsLog& b) {
    a.Swap(&b);
  }
  inline void Swap(ConnectionsLog* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ConnectionsLog* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ConnectionsLog* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ConnectionsLog>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ConnectionsLog& from);
  void MergeFrom(const ConnectionsLog& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ConnectionsLog* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "location.nearby.analytics.proto.ConnectionsLog";
  }
  protected:
  explicit ConnectionsLog(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef ConnectionsLog_ClientSession ClientSession;
  typedef ConnectionsLog_StrategySession StrategySession;
  typedef ConnectionsLog_DiscoveryPhase DiscoveryPhase;
  typedef ConnectionsLog_DiscoveredEndpoint DiscoveredEndpoint;
  typedef ConnectionsLog_UwbRangingProcess UwbRangingProcess;
  typedef ConnectionsLog_RawUwbRangingEvent RawUwbRangingEvent;
  typedef ConnectionsLog_AdvertisingPhase AdvertisingPhase;
  typedef ConnectionsLog_ConnectionRequest ConnectionRequest;
  typedef ConnectionsLog_ConnectionAttempt ConnectionAttempt;
  typedef ConnectionsLog_EstablishedConnection EstablishedConnection;
  typedef ConnectionsLog_Payload Payload;
  typedef ConnectionsLog_BandwidthUpgradeAttempt BandwidthUpgradeAttempt;
  typedef ConnectionsLog_ErrorCode ErrorCode;
  typedef ConnectionsLog_AdvertisingMetadata AdvertisingMetadata;
  typedef ConnectionsLog_DiscoveryMetadata DiscoveryMetadata;
  typedef ConnectionsLog_ConnectionAttemptMetadata ConnectionAttemptMetadata;

  // accessors -------------------------------------------------------

  enum : int {
    kVersionFieldNumber = 3,
    kFilesMigrationPhaseFieldNumber = 6,
    kClientSessionFieldNumber = 2,
    kErrorCodeFieldNumber = 4,
    kEventTypeFieldNumber = 1,
    kLogSourceFieldNumber = 5,
  };
  // optional string version = 3;
  bool has_version() const;
  private:
  bool _internal_has_version() const;
  public:
  void clear_version();
  const std::string& version() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_version(ArgT0&& arg0, ArgT... args);
  std::string* mutable_version();
  PROTOBUF_NODISCARD std::string* release_version();
  void set_allocated_version(std::string* version);
  private:
  const std::string& _internal_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_version(const std::string& value);
  std::string* _internal_mutable_version();
  public:

  // optional string files_migration_phase = 6;
  bool has_files_migration_phase() const;
  private:
  bool _internal_has_files_migration_phase() const;
  public:
  void clear_files_migration_phase();
  const std::string& files_migration_phase() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_files_migration_phase(ArgT0&& arg0, ArgT... args);
  std::string* mutable_files_migration_phase();
  PROTOBUF_NODISCARD std::string* release_files_migration_phase();
  void set_allocated_files_migration_phase(std::string* files_migration_phase);
  private:
  const std::string& _internal_files_migration_phase() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_files_migration_phase(const std::string& value);
  std::string* _internal_mutable_files_migration_phase();
  public:

  // optional .location.nearby.analytics.proto.ConnectionsLog.ClientSession client_session = 2;
  bool has_client_session() const;
  private:
  bool _internal_has_client_session() const;
  public:
  void clear_client_session();
  const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession& client_session() const;
  PROTOBUF_NODISCARD ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* release_client_session();
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* mutable_client_session();
  void set_allocated_client_session(::location::nearby::analytics::proto::ConnectionsLog_ClientSession* client_session);
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession& _internal_client_session() const;
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* _internal_mutable_client_session();
  public:
  void unsafe_arena_set_allocated_client_session(
      ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* client_session);
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* unsafe_arena_release_client_session();

  // optional .location.nearby.analytics.proto.ConnectionsLog.ErrorCode error_code = 4;
  bool has_error_code() const;
  private:
  bool _internal_has_error_code() const;
  public:
  void clear_error_code();
  const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode& error_code() const;
  PROTOBUF_NODISCARD ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* release_error_code();
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* mutable_error_code();
  void set_allocated_error_code(::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* error_code);
  private:
  const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode& _internal_error_code() const;
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* _internal_mutable_error_code();
  public:
  void unsafe_arena_set_allocated_error_code(
      ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* error_code);
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* unsafe_arena_release_error_code();

  // optional .location.nearby.proto.connections.EventType event_type = 1;
  bool has_event_type() const;
  private:
  bool _internal_has_event_type() const;
  public:
  void clear_event_type();
  ::location::nearby::proto::connections::EventType event_type() const;
  void set_event_type(::location::nearby::proto::connections::EventType value);
  private:
  ::location::nearby::proto::connections::EventType _internal_event_type() const;
  void _internal_set_event_type(::location::nearby::proto::connections::EventType value);
  public:

  // optional .location.nearby.proto.connections.LogSource log_source = 5;
  bool has_log_source() const;
  private:
  bool _internal_has_log_source() const;
  public:
  void clear_log_source();
  ::location::nearby::proto::connections::LogSource log_source() const;
  void set_log_source(::location::nearby::proto::connections::LogSource value);
  private:
  ::location::nearby::proto::connections::LogSource _internal_log_source() const;
  void _internal_set_log_source(::location::nearby::proto::connections::LogSource value);
  public:

  // @@protoc_insertion_point(class_scope:location.nearby.analytics.proto.ConnectionsLog)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr version_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr files_migration_phase_;
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* client_session_;
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* error_code_;
  int event_type_;
  int log_source_;
  friend struct ::TableStruct_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto;
};
// ===================================================================


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

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

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_ClientSession::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_ClientSession::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_ClientSession::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_ClientSession::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_ClientSession::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ClientSession.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_ClientSession::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_ClientSession::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ClientSession.duration_millis)
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.StrategySession strategy_session = 2;
inline int ConnectionsLog_ClientSession::_internal_strategy_session_size() const {
  return strategy_session_.size();
}
inline int ConnectionsLog_ClientSession::strategy_session_size() const {
  return _internal_strategy_session_size();
}
inline void ConnectionsLog_ClientSession::clear_strategy_session() {
  strategy_session_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* ConnectionsLog_ClientSession::mutable_strategy_session(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ClientSession.strategy_session)
  return strategy_session_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_StrategySession >*
ConnectionsLog_ClientSession::mutable_strategy_session() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.ClientSession.strategy_session)
  return &strategy_session_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_StrategySession& ConnectionsLog_ClientSession::_internal_strategy_session(int index) const {
  return strategy_session_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_StrategySession& ConnectionsLog_ClientSession::strategy_session(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ClientSession.strategy_session)
  return _internal_strategy_session(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* ConnectionsLog_ClientSession::_internal_add_strategy_session() {
  return strategy_session_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* ConnectionsLog_ClientSession::add_strategy_session() {
  ::location::nearby::analytics::proto::ConnectionsLog_StrategySession* _add = _internal_add_strategy_session();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.ClientSession.strategy_session)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_StrategySession >&
ConnectionsLog_ClientSession::strategy_session() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.ClientSession.strategy_session)
  return strategy_session_;
}

// optional int64 client_flow_id = 3;
inline bool ConnectionsLog_ClientSession::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_ClientSession::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_ClientSession::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000004u;
}
inline int64_t ConnectionsLog_ClientSession::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_ClientSession::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ClientSession.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_ClientSession::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000004u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_ClientSession::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ClientSession.client_flow_id)
}

// optional string connection_token = 4;
inline bool ConnectionsLog_ClientSession::_internal_has_connection_token() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_ClientSession::has_connection_token() const {
  return _internal_has_connection_token();
}
inline void ConnectionsLog_ClientSession::clear_connection_token() {
  connection_token_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_ClientSession::connection_token() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ClientSession.connection_token)
  return _internal_connection_token();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ClientSession::set_connection_token(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ClientSession.connection_token)
}
inline std::string* ConnectionsLog_ClientSession::mutable_connection_token() {
  std::string* _s = _internal_mutable_connection_token();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ClientSession.connection_token)
  return _s;
}
inline const std::string& ConnectionsLog_ClientSession::_internal_connection_token() const {
  return connection_token_.Get();
}
inline void ConnectionsLog_ClientSession::_internal_set_connection_token(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ClientSession::_internal_mutable_connection_token() {
  _has_bits_[0] |= 0x00000001u;
  return connection_token_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ClientSession::release_connection_token() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ClientSession.connection_token)
  if (!_internal_has_connection_token()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = connection_token_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ClientSession::set_allocated_connection_token(std::string* connection_token) {
  if (connection_token != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  connection_token_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_token,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ClientSession.connection_token)
}

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

// ConnectionsLog_StrategySession

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_StrategySession::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_StrategySession::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_StrategySession::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_StrategySession::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_StrategySession::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_StrategySession::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_StrategySession::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.StrategySession.duration_millis)
}

// optional .location.nearby.proto.connections.ConnectionsStrategy strategy = 2;
inline bool ConnectionsLog_StrategySession::_internal_has_strategy() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_StrategySession::has_strategy() const {
  return _internal_has_strategy();
}
inline void ConnectionsLog_StrategySession::clear_strategy() {
  strategy_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::ConnectionsStrategy ConnectionsLog_StrategySession::_internal_strategy() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionsStrategy >(strategy_);
}
inline ::location::nearby::proto::connections::ConnectionsStrategy ConnectionsLog_StrategySession::strategy() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.strategy)
  return _internal_strategy();
}
inline void ConnectionsLog_StrategySession::_internal_set_strategy(::location::nearby::proto::connections::ConnectionsStrategy value) {
  assert(::location::nearby::proto::connections::ConnectionsStrategy_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  strategy_ = value;
}
inline void ConnectionsLog_StrategySession::set_strategy(::location::nearby::proto::connections::ConnectionsStrategy value) {
  _internal_set_strategy(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.StrategySession.strategy)
}

// repeated .location.nearby.proto.connections.SessionRole role = 3;
inline int ConnectionsLog_StrategySession::_internal_role_size() const {
  return role_.size();
}
inline int ConnectionsLog_StrategySession::role_size() const {
  return _internal_role_size();
}
inline void ConnectionsLog_StrategySession::clear_role() {
  role_.Clear();
}
inline ::location::nearby::proto::connections::SessionRole ConnectionsLog_StrategySession::_internal_role(int index) const {
  return static_cast< ::location::nearby::proto::connections::SessionRole >(role_.Get(index));
}
inline ::location::nearby::proto::connections::SessionRole ConnectionsLog_StrategySession::role(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.role)
  return _internal_role(index);
}
inline void ConnectionsLog_StrategySession::set_role(int index, ::location::nearby::proto::connections::SessionRole value) {
  assert(::location::nearby::proto::connections::SessionRole_IsValid(value));
  role_.Set(index, value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.StrategySession.role)
}
inline void ConnectionsLog_StrategySession::_internal_add_role(::location::nearby::proto::connections::SessionRole value) {
  assert(::location::nearby::proto::connections::SessionRole_IsValid(value));
  role_.Add(value);
}
inline void ConnectionsLog_StrategySession::add_role(::location::nearby::proto::connections::SessionRole value) {
  _internal_add_role(value);
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.role)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
ConnectionsLog_StrategySession::role() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.role)
  return role_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_StrategySession::_internal_mutable_role() {
  return &role_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_StrategySession::mutable_role() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.role)
  return _internal_mutable_role();
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase discovery_phase = 4;
inline int ConnectionsLog_StrategySession::_internal_discovery_phase_size() const {
  return discovery_phase_.size();
}
inline int ConnectionsLog_StrategySession::discovery_phase_size() const {
  return _internal_discovery_phase_size();
}
inline void ConnectionsLog_StrategySession::clear_discovery_phase() {
  discovery_phase_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* ConnectionsLog_StrategySession::mutable_discovery_phase(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.discovery_phase)
  return discovery_phase_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase >*
ConnectionsLog_StrategySession::mutable_discovery_phase() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.discovery_phase)
  return &discovery_phase_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase& ConnectionsLog_StrategySession::_internal_discovery_phase(int index) const {
  return discovery_phase_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase& ConnectionsLog_StrategySession::discovery_phase(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.discovery_phase)
  return _internal_discovery_phase(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* ConnectionsLog_StrategySession::_internal_add_discovery_phase() {
  return discovery_phase_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* ConnectionsLog_StrategySession::add_discovery_phase() {
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase* _add = _internal_add_discovery_phase();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.discovery_phase)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryPhase >&
ConnectionsLog_StrategySession::discovery_phase() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.discovery_phase)
  return discovery_phase_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase advertising_phase = 5;
inline int ConnectionsLog_StrategySession::_internal_advertising_phase_size() const {
  return advertising_phase_.size();
}
inline int ConnectionsLog_StrategySession::advertising_phase_size() const {
  return _internal_advertising_phase_size();
}
inline void ConnectionsLog_StrategySession::clear_advertising_phase() {
  advertising_phase_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* ConnectionsLog_StrategySession::mutable_advertising_phase(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.advertising_phase)
  return advertising_phase_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase >*
ConnectionsLog_StrategySession::mutable_advertising_phase() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.advertising_phase)
  return &advertising_phase_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase& ConnectionsLog_StrategySession::_internal_advertising_phase(int index) const {
  return advertising_phase_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase& ConnectionsLog_StrategySession::advertising_phase(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.advertising_phase)
  return _internal_advertising_phase(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* ConnectionsLog_StrategySession::_internal_add_advertising_phase() {
  return advertising_phase_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* ConnectionsLog_StrategySession::add_advertising_phase() {
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase* _add = _internal_add_advertising_phase();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.advertising_phase)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingPhase >&
ConnectionsLog_StrategySession::advertising_phase() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.advertising_phase)
  return advertising_phase_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt connection_attempt = 6;
inline int ConnectionsLog_StrategySession::_internal_connection_attempt_size() const {
  return connection_attempt_.size();
}
inline int ConnectionsLog_StrategySession::connection_attempt_size() const {
  return _internal_connection_attempt_size();
}
inline void ConnectionsLog_StrategySession::clear_connection_attempt() {
  connection_attempt_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* ConnectionsLog_StrategySession::mutable_connection_attempt(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.connection_attempt)
  return connection_attempt_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt >*
ConnectionsLog_StrategySession::mutable_connection_attempt() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.connection_attempt)
  return &connection_attempt_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt& ConnectionsLog_StrategySession::_internal_connection_attempt(int index) const {
  return connection_attempt_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt& ConnectionsLog_StrategySession::connection_attempt(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.connection_attempt)
  return _internal_connection_attempt(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* ConnectionsLog_StrategySession::_internal_add_connection_attempt() {
  return connection_attempt_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* ConnectionsLog_StrategySession::add_connection_attempt() {
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt* _add = _internal_add_connection_attempt();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.connection_attempt)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttempt >&
ConnectionsLog_StrategySession::connection_attempt() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.connection_attempt)
  return connection_attempt_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection established_connection = 7;
inline int ConnectionsLog_StrategySession::_internal_established_connection_size() const {
  return established_connection_.size();
}
inline int ConnectionsLog_StrategySession::established_connection_size() const {
  return _internal_established_connection_size();
}
inline void ConnectionsLog_StrategySession::clear_established_connection() {
  established_connection_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* ConnectionsLog_StrategySession::mutable_established_connection(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.established_connection)
  return established_connection_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection >*
ConnectionsLog_StrategySession::mutable_established_connection() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.established_connection)
  return &established_connection_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection& ConnectionsLog_StrategySession::_internal_established_connection(int index) const {
  return established_connection_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection& ConnectionsLog_StrategySession::established_connection(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.established_connection)
  return _internal_established_connection(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* ConnectionsLog_StrategySession::_internal_add_established_connection() {
  return established_connection_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* ConnectionsLog_StrategySession::add_established_connection() {
  ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection* _add = _internal_add_established_connection();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.established_connection)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection >&
ConnectionsLog_StrategySession::established_connection() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.established_connection)
  return established_connection_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt upgrade_attempt = 9;
inline int ConnectionsLog_StrategySession::_internal_upgrade_attempt_size() const {
  return upgrade_attempt_.size();
}
inline int ConnectionsLog_StrategySession::upgrade_attempt_size() const {
  return _internal_upgrade_attempt_size();
}
inline void ConnectionsLog_StrategySession::clear_upgrade_attempt() {
  upgrade_attempt_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* ConnectionsLog_StrategySession::mutable_upgrade_attempt(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.upgrade_attempt)
  return upgrade_attempt_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt >*
ConnectionsLog_StrategySession::mutable_upgrade_attempt() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.upgrade_attempt)
  return &upgrade_attempt_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt& ConnectionsLog_StrategySession::_internal_upgrade_attempt(int index) const {
  return upgrade_attempt_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt& ConnectionsLog_StrategySession::upgrade_attempt(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.upgrade_attempt)
  return _internal_upgrade_attempt(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* ConnectionsLog_StrategySession::_internal_add_upgrade_attempt() {
  return upgrade_attempt_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* ConnectionsLog_StrategySession::add_upgrade_attempt() {
  ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt* _add = _internal_add_upgrade_attempt();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.StrategySession.upgrade_attempt)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_BandwidthUpgradeAttempt >&
ConnectionsLog_StrategySession::upgrade_attempt() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.StrategySession.upgrade_attempt)
  return upgrade_attempt_;
}

// optional string build_version = 10;
inline bool ConnectionsLog_StrategySession::_internal_has_build_version() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_StrategySession::has_build_version() const {
  return _internal_has_build_version();
}
inline void ConnectionsLog_StrategySession::clear_build_version() {
  build_version_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_StrategySession::build_version() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.StrategySession.build_version)
  return _internal_build_version();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_StrategySession::set_build_version(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 build_version_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.StrategySession.build_version)
}
inline std::string* ConnectionsLog_StrategySession::mutable_build_version() {
  std::string* _s = _internal_mutable_build_version();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.StrategySession.build_version)
  return _s;
}
inline const std::string& ConnectionsLog_StrategySession::_internal_build_version() const {
  return build_version_.Get();
}
inline void ConnectionsLog_StrategySession::_internal_set_build_version(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  build_version_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_StrategySession::_internal_mutable_build_version() {
  _has_bits_[0] |= 0x00000001u;
  return build_version_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_StrategySession::release_build_version() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.StrategySession.build_version)
  if (!_internal_has_build_version()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = build_version_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (build_version_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    build_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_StrategySession::set_allocated_build_version(std::string* build_version) {
  if (build_version != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  build_version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), build_version,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (build_version_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    build_version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.StrategySession.build_version)
}

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

// ConnectionsLog_DiscoveryPhase

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_DiscoveryPhase::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryPhase::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_DiscoveryPhase::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_DiscoveryPhase::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_DiscoveryPhase::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_DiscoveryPhase::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_DiscoveryPhase::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.duration_millis)
}

// repeated .location.nearby.proto.connections.Medium medium = 2;
inline int ConnectionsLog_DiscoveryPhase::_internal_medium_size() const {
  return medium_.size();
}
inline int ConnectionsLog_DiscoveryPhase::medium_size() const {
  return _internal_medium_size();
}
inline void ConnectionsLog_DiscoveryPhase::clear_medium() {
  medium_.Clear();
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_DiscoveryPhase::_internal_medium(int index) const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_.Get(index));
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_DiscoveryPhase::medium(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.medium)
  return _internal_medium(index);
}
inline void ConnectionsLog_DiscoveryPhase::set_medium(int index, ::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  medium_.Set(index, value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.medium)
}
inline void ConnectionsLog_DiscoveryPhase::_internal_add_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  medium_.Add(value);
}
inline void ConnectionsLog_DiscoveryPhase::add_medium(::location::nearby::proto::connections::Medium value) {
  _internal_add_medium(value);
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.medium)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
ConnectionsLog_DiscoveryPhase::medium() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.medium)
  return medium_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_DiscoveryPhase::_internal_mutable_medium() {
  return &medium_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_DiscoveryPhase::mutable_medium() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.medium)
  return _internal_mutable_medium();
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint discovered_endpoint = 3;
inline int ConnectionsLog_DiscoveryPhase::_internal_discovered_endpoint_size() const {
  return discovered_endpoint_.size();
}
inline int ConnectionsLog_DiscoveryPhase::discovered_endpoint_size() const {
  return _internal_discovered_endpoint_size();
}
inline void ConnectionsLog_DiscoveryPhase::clear_discovered_endpoint() {
  discovered_endpoint_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* ConnectionsLog_DiscoveryPhase::mutable_discovered_endpoint(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovered_endpoint)
  return discovered_endpoint_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint >*
ConnectionsLog_DiscoveryPhase::mutable_discovered_endpoint() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovered_endpoint)
  return &discovered_endpoint_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint& ConnectionsLog_DiscoveryPhase::_internal_discovered_endpoint(int index) const {
  return discovered_endpoint_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint& ConnectionsLog_DiscoveryPhase::discovered_endpoint(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovered_endpoint)
  return _internal_discovered_endpoint(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* ConnectionsLog_DiscoveryPhase::_internal_add_discovered_endpoint() {
  return discovered_endpoint_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* ConnectionsLog_DiscoveryPhase::add_discovered_endpoint() {
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint* _add = _internal_add_discovered_endpoint();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovered_endpoint)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_DiscoveredEndpoint >&
ConnectionsLog_DiscoveryPhase::discovered_endpoint() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovered_endpoint)
  return discovered_endpoint_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest sent_connection_request = 4;
inline int ConnectionsLog_DiscoveryPhase::_internal_sent_connection_request_size() const {
  return sent_connection_request_.size();
}
inline int ConnectionsLog_DiscoveryPhase::sent_connection_request_size() const {
  return _internal_sent_connection_request_size();
}
inline void ConnectionsLog_DiscoveryPhase::clear_sent_connection_request() {
  sent_connection_request_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_DiscoveryPhase::mutable_sent_connection_request(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.sent_connection_request)
  return sent_connection_request_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >*
ConnectionsLog_DiscoveryPhase::mutable_sent_connection_request() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.sent_connection_request)
  return &sent_connection_request_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& ConnectionsLog_DiscoveryPhase::_internal_sent_connection_request(int index) const {
  return sent_connection_request_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& ConnectionsLog_DiscoveryPhase::sent_connection_request(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.sent_connection_request)
  return _internal_sent_connection_request(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_DiscoveryPhase::_internal_add_sent_connection_request() {
  return sent_connection_request_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_DiscoveryPhase::add_sent_connection_request() {
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* _add = _internal_add_sent_connection_request();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.sent_connection_request)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >&
ConnectionsLog_DiscoveryPhase::sent_connection_request() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.sent_connection_request)
  return sent_connection_request_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess uwb_ranging = 5;
inline int ConnectionsLog_DiscoveryPhase::_internal_uwb_ranging_size() const {
  return uwb_ranging_.size();
}
inline int ConnectionsLog_DiscoveryPhase::uwb_ranging_size() const {
  return _internal_uwb_ranging_size();
}
inline void ConnectionsLog_DiscoveryPhase::clear_uwb_ranging() {
  uwb_ranging_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* ConnectionsLog_DiscoveryPhase::mutable_uwb_ranging(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.uwb_ranging)
  return uwb_ranging_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess >*
ConnectionsLog_DiscoveryPhase::mutable_uwb_ranging() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.uwb_ranging)
  return &uwb_ranging_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess& ConnectionsLog_DiscoveryPhase::_internal_uwb_ranging(int index) const {
  return uwb_ranging_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess& ConnectionsLog_DiscoveryPhase::uwb_ranging(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.uwb_ranging)
  return _internal_uwb_ranging(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* ConnectionsLog_DiscoveryPhase::_internal_add_uwb_ranging() {
  return uwb_ranging_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* ConnectionsLog_DiscoveryPhase::add_uwb_ranging() {
  ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess* _add = _internal_add_uwb_ranging();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.uwb_ranging)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_UwbRangingProcess >&
ConnectionsLog_DiscoveryPhase::uwb_ranging() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.uwb_ranging)
  return uwb_ranging_;
}

// optional int64 client_flow_id = 6;
inline bool ConnectionsLog_DiscoveryPhase::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryPhase::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_DiscoveryPhase::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000004u;
}
inline int64_t ConnectionsLog_DiscoveryPhase::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_DiscoveryPhase::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_DiscoveryPhase::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000004u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_DiscoveryPhase::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.client_flow_id)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata discovery_metadata = 7;
inline bool ConnectionsLog_DiscoveryPhase::_internal_has_discovery_metadata() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || discovery_metadata_ != nullptr);
  return value;
}
inline bool ConnectionsLog_DiscoveryPhase::has_discovery_metadata() const {
  return _internal_has_discovery_metadata();
}
inline void ConnectionsLog_DiscoveryPhase::clear_discovery_metadata() {
  if (discovery_metadata_ != nullptr) discovery_metadata_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata& ConnectionsLog_DiscoveryPhase::_internal_discovery_metadata() const {
  const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* p = discovery_metadata_;
  return p != nullptr ? *p : reinterpret_cast<const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata&>(
      ::location::nearby::analytics::proto::_ConnectionsLog_DiscoveryMetadata_default_instance_);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata& ConnectionsLog_DiscoveryPhase::discovery_metadata() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovery_metadata)
  return _internal_discovery_metadata();
}
inline void ConnectionsLog_DiscoveryPhase::unsafe_arena_set_allocated_discovery_metadata(
    ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* discovery_metadata) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(discovery_metadata_);
  }
  discovery_metadata_ = discovery_metadata;
  if (discovery_metadata) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovery_metadata)
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* ConnectionsLog_DiscoveryPhase::release_discovery_metadata() {
  _has_bits_[0] &= ~0x00000001u;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* temp = discovery_metadata_;
  discovery_metadata_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* ConnectionsLog_DiscoveryPhase::unsafe_arena_release_discovery_metadata() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovery_metadata)
  _has_bits_[0] &= ~0x00000001u;
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* temp = discovery_metadata_;
  discovery_metadata_ = nullptr;
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* ConnectionsLog_DiscoveryPhase::_internal_mutable_discovery_metadata() {
  _has_bits_[0] |= 0x00000001u;
  if (discovery_metadata_ == nullptr) {
    auto* p = CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata>(GetArenaForAllocation());
    discovery_metadata_ = p;
  }
  return discovery_metadata_;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* ConnectionsLog_DiscoveryPhase::mutable_discovery_metadata() {
  ::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* _msg = _internal_mutable_discovery_metadata();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovery_metadata)
  return _msg;
}
inline void ConnectionsLog_DiscoveryPhase::set_allocated_discovery_metadata(::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata* discovery_metadata) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete discovery_metadata_;
  }
  if (discovery_metadata) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::location::nearby::analytics::proto::ConnectionsLog_DiscoveryMetadata>::GetOwningArena(discovery_metadata);
    if (message_arena != submessage_arena) {
      discovery_metadata = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, discovery_metadata, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  discovery_metadata_ = discovery_metadata;
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.DiscoveryPhase.discovery_metadata)
}

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

// ConnectionsLog_DiscoveredEndpoint

// optional .location.nearby.proto.connections.Medium medium = 1;
inline bool ConnectionsLog_DiscoveredEndpoint::_internal_has_medium() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveredEndpoint::has_medium() const {
  return _internal_has_medium();
}
inline void ConnectionsLog_DiscoveredEndpoint::clear_medium() {
  medium_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_DiscoveredEndpoint::_internal_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_DiscoveredEndpoint::medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint.medium)
  return _internal_medium();
}
inline void ConnectionsLog_DiscoveredEndpoint::_internal_set_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000002u;
  medium_ = value;
}
inline void ConnectionsLog_DiscoveredEndpoint::set_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint.medium)
}

// optional int64 latency_millis = 2;
inline bool ConnectionsLog_DiscoveredEndpoint::_internal_has_latency_millis() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveredEndpoint::has_latency_millis() const {
  return _internal_has_latency_millis();
}
inline void ConnectionsLog_DiscoveredEndpoint::clear_latency_millis() {
  latency_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000001u;
}
inline int64_t ConnectionsLog_DiscoveredEndpoint::_internal_latency_millis() const {
  return latency_millis_;
}
inline int64_t ConnectionsLog_DiscoveredEndpoint::latency_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint.latency_millis)
  return _internal_latency_millis();
}
inline void ConnectionsLog_DiscoveredEndpoint::_internal_set_latency_millis(int64_t value) {
  _has_bits_[0] |= 0x00000001u;
  latency_millis_ = value;
}
inline void ConnectionsLog_DiscoveredEndpoint::set_latency_millis(int64_t value) {
  _internal_set_latency_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveredEndpoint.latency_millis)
}

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

// ConnectionsLog_UwbRangingProcess

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_UwbRangingProcess::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000001u;
}
inline int64_t ConnectionsLog_UwbRangingProcess::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_UwbRangingProcess::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000001u;
  duration_millis_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.duration_millis)
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent uwb_ranging_data = 2;
inline int ConnectionsLog_UwbRangingProcess::_internal_uwb_ranging_data_size() const {
  return uwb_ranging_data_.size();
}
inline int ConnectionsLog_UwbRangingProcess::uwb_ranging_data_size() const {
  return _internal_uwb_ranging_data_size();
}
inline void ConnectionsLog_UwbRangingProcess::clear_uwb_ranging_data() {
  uwb_ranging_data_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* ConnectionsLog_UwbRangingProcess::mutable_uwb_ranging_data(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.uwb_ranging_data)
  return uwb_ranging_data_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent >*
ConnectionsLog_UwbRangingProcess::mutable_uwb_ranging_data() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.uwb_ranging_data)
  return &uwb_ranging_data_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent& ConnectionsLog_UwbRangingProcess::_internal_uwb_ranging_data(int index) const {
  return uwb_ranging_data_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent& ConnectionsLog_UwbRangingProcess::uwb_ranging_data(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.uwb_ranging_data)
  return _internal_uwb_ranging_data(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* ConnectionsLog_UwbRangingProcess::_internal_add_uwb_ranging_data() {
  return uwb_ranging_data_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* ConnectionsLog_UwbRangingProcess::add_uwb_ranging_data() {
  ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent* _add = _internal_add_uwb_ranging_data();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.uwb_ranging_data)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_RawUwbRangingEvent >&
ConnectionsLog_UwbRangingProcess::uwb_ranging_data() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.uwb_ranging_data)
  return uwb_ranging_data_;
}

// optional int32 number_of_ranging_data = 3;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_number_of_ranging_data() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_number_of_ranging_data() const {
  return _internal_has_number_of_ranging_data();
}
inline void ConnectionsLog_UwbRangingProcess::clear_number_of_ranging_data() {
  number_of_ranging_data_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_number_of_ranging_data() const {
  return number_of_ranging_data_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::number_of_ranging_data() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.number_of_ranging_data)
  return _internal_number_of_ranging_data();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_number_of_ranging_data(int32_t value) {
  _has_bits_[0] |= 0x00000002u;
  number_of_ranging_data_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_number_of_ranging_data(int32_t value) {
  _internal_set_number_of_ranging_data(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.number_of_ranging_data)
}

// optional int32 distance_min = 4;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_distance_min() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_distance_min() const {
  return _internal_has_distance_min();
}
inline void ConnectionsLog_UwbRangingProcess::clear_distance_min() {
  distance_min_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_distance_min() const {
  return distance_min_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::distance_min() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_min)
  return _internal_distance_min();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_distance_min(int32_t value) {
  _has_bits_[0] |= 0x00000004u;
  distance_min_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_distance_min(int32_t value) {
  _internal_set_distance_min(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_min)
}

// optional int32 distance_max = 5;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_distance_max() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_distance_max() const {
  return _internal_has_distance_max();
}
inline void ConnectionsLog_UwbRangingProcess::clear_distance_max() {
  distance_max_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_distance_max() const {
  return distance_max_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::distance_max() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_max)
  return _internal_distance_max();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_distance_max(int32_t value) {
  _has_bits_[0] |= 0x00000008u;
  distance_max_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_distance_max(int32_t value) {
  _internal_set_distance_max(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_max)
}

// optional int32 distance_ave = 6;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_distance_ave() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_distance_ave() const {
  return _internal_has_distance_ave();
}
inline void ConnectionsLog_UwbRangingProcess::clear_distance_ave() {
  distance_ave_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_distance_ave() const {
  return distance_ave_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::distance_ave() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_ave)
  return _internal_distance_ave();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_distance_ave(int32_t value) {
  _has_bits_[0] |= 0x00000010u;
  distance_ave_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_distance_ave(int32_t value) {
  _internal_set_distance_ave(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_ave)
}

// optional int32 distance_variance = 7;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_distance_variance() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_distance_variance() const {
  return _internal_has_distance_variance();
}
inline void ConnectionsLog_UwbRangingProcess::clear_distance_variance() {
  distance_variance_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_distance_variance() const {
  return distance_variance_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::distance_variance() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_variance)
  return _internal_distance_variance();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_distance_variance(int32_t value) {
  _has_bits_[0] |= 0x00000020u;
  distance_variance_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_distance_variance(int32_t value) {
  _internal_set_distance_variance(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.distance_variance)
}

// optional int32 azimuth_min = 8;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_azimuth_min() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_azimuth_min() const {
  return _internal_has_azimuth_min();
}
inline void ConnectionsLog_UwbRangingProcess::clear_azimuth_min() {
  azimuth_min_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_azimuth_min() const {
  return azimuth_min_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::azimuth_min() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_min)
  return _internal_azimuth_min();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_azimuth_min(int32_t value) {
  _has_bits_[0] |= 0x00000040u;
  azimuth_min_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_azimuth_min(int32_t value) {
  _internal_set_azimuth_min(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_min)
}

// optional int32 azimuth_max = 9;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_azimuth_max() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_azimuth_max() const {
  return _internal_has_azimuth_max();
}
inline void ConnectionsLog_UwbRangingProcess::clear_azimuth_max() {
  azimuth_max_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_azimuth_max() const {
  return azimuth_max_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::azimuth_max() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_max)
  return _internal_azimuth_max();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_azimuth_max(int32_t value) {
  _has_bits_[0] |= 0x00000080u;
  azimuth_max_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_azimuth_max(int32_t value) {
  _internal_set_azimuth_max(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_max)
}

// optional int32 azimuth_ave = 10;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_azimuth_ave() const {
  bool value = (_has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_azimuth_ave() const {
  return _internal_has_azimuth_ave();
}
inline void ConnectionsLog_UwbRangingProcess::clear_azimuth_ave() {
  azimuth_ave_ = 0;
  _has_bits_[0] &= ~0x00000100u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_azimuth_ave() const {
  return azimuth_ave_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::azimuth_ave() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_ave)
  return _internal_azimuth_ave();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_azimuth_ave(int32_t value) {
  _has_bits_[0] |= 0x00000100u;
  azimuth_ave_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_azimuth_ave(int32_t value) {
  _internal_set_azimuth_ave(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_ave)
}

// optional int32 azimuth_variance = 11;
inline bool ConnectionsLog_UwbRangingProcess::_internal_has_azimuth_variance() const {
  bool value = (_has_bits_[0] & 0x00000200u) != 0;
  return value;
}
inline bool ConnectionsLog_UwbRangingProcess::has_azimuth_variance() const {
  return _internal_has_azimuth_variance();
}
inline void ConnectionsLog_UwbRangingProcess::clear_azimuth_variance() {
  azimuth_variance_ = 0;
  _has_bits_[0] &= ~0x00000200u;
}
inline int32_t ConnectionsLog_UwbRangingProcess::_internal_azimuth_variance() const {
  return azimuth_variance_;
}
inline int32_t ConnectionsLog_UwbRangingProcess::azimuth_variance() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_variance)
  return _internal_azimuth_variance();
}
inline void ConnectionsLog_UwbRangingProcess::_internal_set_azimuth_variance(int32_t value) {
  _has_bits_[0] |= 0x00000200u;
  azimuth_variance_ = value;
}
inline void ConnectionsLog_UwbRangingProcess::set_azimuth_variance(int32_t value) {
  _internal_set_azimuth_variance(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.UwbRangingProcess.azimuth_variance)
}

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

// ConnectionsLog_RawUwbRangingEvent

// optional int32 distance = 1;
inline bool ConnectionsLog_RawUwbRangingEvent::_internal_has_distance() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_RawUwbRangingEvent::has_distance() const {
  return _internal_has_distance();
}
inline void ConnectionsLog_RawUwbRangingEvent::clear_distance() {
  distance_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::_internal_distance() const {
  return distance_;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::distance() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.distance)
  return _internal_distance();
}
inline void ConnectionsLog_RawUwbRangingEvent::_internal_set_distance(int32_t value) {
  _has_bits_[0] |= 0x00000001u;
  distance_ = value;
}
inline void ConnectionsLog_RawUwbRangingEvent::set_distance(int32_t value) {
  _internal_set_distance(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.distance)
}

// optional int32 azimuth_angle = 2;
inline bool ConnectionsLog_RawUwbRangingEvent::_internal_has_azimuth_angle() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_RawUwbRangingEvent::has_azimuth_angle() const {
  return _internal_has_azimuth_angle();
}
inline void ConnectionsLog_RawUwbRangingEvent::clear_azimuth_angle() {
  azimuth_angle_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::_internal_azimuth_angle() const {
  return azimuth_angle_;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::azimuth_angle() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.azimuth_angle)
  return _internal_azimuth_angle();
}
inline void ConnectionsLog_RawUwbRangingEvent::_internal_set_azimuth_angle(int32_t value) {
  _has_bits_[0] |= 0x00000002u;
  azimuth_angle_ = value;
}
inline void ConnectionsLog_RawUwbRangingEvent::set_azimuth_angle(int32_t value) {
  _internal_set_azimuth_angle(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.azimuth_angle)
}

// optional int32 polar_angle = 3;
inline bool ConnectionsLog_RawUwbRangingEvent::_internal_has_polar_angle() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_RawUwbRangingEvent::has_polar_angle() const {
  return _internal_has_polar_angle();
}
inline void ConnectionsLog_RawUwbRangingEvent::clear_polar_angle() {
  polar_angle_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::_internal_polar_angle() const {
  return polar_angle_;
}
inline int32_t ConnectionsLog_RawUwbRangingEvent::polar_angle() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.polar_angle)
  return _internal_polar_angle();
}
inline void ConnectionsLog_RawUwbRangingEvent::_internal_set_polar_angle(int32_t value) {
  _has_bits_[0] |= 0x00000004u;
  polar_angle_ = value;
}
inline void ConnectionsLog_RawUwbRangingEvent::set_polar_angle(int32_t value) {
  _internal_set_polar_angle(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.RawUwbRangingEvent.polar_angle)
}

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

// ConnectionsLog_AdvertisingPhase

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_AdvertisingPhase::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingPhase::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_AdvertisingPhase::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_AdvertisingPhase::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_AdvertisingPhase::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_AdvertisingPhase::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_AdvertisingPhase::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.duration_millis)
}

// repeated .location.nearby.proto.connections.Medium medium = 2;
inline int ConnectionsLog_AdvertisingPhase::_internal_medium_size() const {
  return medium_.size();
}
inline int ConnectionsLog_AdvertisingPhase::medium_size() const {
  return _internal_medium_size();
}
inline void ConnectionsLog_AdvertisingPhase::clear_medium() {
  medium_.Clear();
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_AdvertisingPhase::_internal_medium(int index) const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_.Get(index));
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_AdvertisingPhase::medium(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.medium)
  return _internal_medium(index);
}
inline void ConnectionsLog_AdvertisingPhase::set_medium(int index, ::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  medium_.Set(index, value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.medium)
}
inline void ConnectionsLog_AdvertisingPhase::_internal_add_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  medium_.Add(value);
}
inline void ConnectionsLog_AdvertisingPhase::add_medium(::location::nearby::proto::connections::Medium value) {
  _internal_add_medium(value);
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.medium)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
ConnectionsLog_AdvertisingPhase::medium() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.medium)
  return medium_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_AdvertisingPhase::_internal_mutable_medium() {
  return &medium_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
ConnectionsLog_AdvertisingPhase::mutable_medium() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.medium)
  return _internal_mutable_medium();
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest received_connection_request = 3;
inline int ConnectionsLog_AdvertisingPhase::_internal_received_connection_request_size() const {
  return received_connection_request_.size();
}
inline int ConnectionsLog_AdvertisingPhase::received_connection_request_size() const {
  return _internal_received_connection_request_size();
}
inline void ConnectionsLog_AdvertisingPhase::clear_received_connection_request() {
  received_connection_request_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_AdvertisingPhase::mutable_received_connection_request(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.received_connection_request)
  return received_connection_request_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >*
ConnectionsLog_AdvertisingPhase::mutable_received_connection_request() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.received_connection_request)
  return &received_connection_request_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& ConnectionsLog_AdvertisingPhase::_internal_received_connection_request(int index) const {
  return received_connection_request_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest& ConnectionsLog_AdvertisingPhase::received_connection_request(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.received_connection_request)
  return _internal_received_connection_request(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_AdvertisingPhase::_internal_add_received_connection_request() {
  return received_connection_request_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* ConnectionsLog_AdvertisingPhase::add_received_connection_request() {
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest* _add = _internal_add_received_connection_request();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.received_connection_request)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_ConnectionRequest >&
ConnectionsLog_AdvertisingPhase::received_connection_request() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.received_connection_request)
  return received_connection_request_;
}

// optional int64 client_flow_id = 4;
inline bool ConnectionsLog_AdvertisingPhase::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingPhase::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_AdvertisingPhase::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000004u;
}
inline int64_t ConnectionsLog_AdvertisingPhase::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_AdvertisingPhase::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_AdvertisingPhase::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000004u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_AdvertisingPhase::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.client_flow_id)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata advertising_metadata = 5;
inline bool ConnectionsLog_AdvertisingPhase::_internal_has_advertising_metadata() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || advertising_metadata_ != nullptr);
  return value;
}
inline bool ConnectionsLog_AdvertisingPhase::has_advertising_metadata() const {
  return _internal_has_advertising_metadata();
}
inline void ConnectionsLog_AdvertisingPhase::clear_advertising_metadata() {
  if (advertising_metadata_ != nullptr) advertising_metadata_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata& ConnectionsLog_AdvertisingPhase::_internal_advertising_metadata() const {
  const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* p = advertising_metadata_;
  return p != nullptr ? *p : reinterpret_cast<const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata&>(
      ::location::nearby::analytics::proto::_ConnectionsLog_AdvertisingMetadata_default_instance_);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata& ConnectionsLog_AdvertisingPhase::advertising_metadata() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.advertising_metadata)
  return _internal_advertising_metadata();
}
inline void ConnectionsLog_AdvertisingPhase::unsafe_arena_set_allocated_advertising_metadata(
    ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* advertising_metadata) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(advertising_metadata_);
  }
  advertising_metadata_ = advertising_metadata;
  if (advertising_metadata) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.advertising_metadata)
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* ConnectionsLog_AdvertisingPhase::release_advertising_metadata() {
  _has_bits_[0] &= ~0x00000001u;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* temp = advertising_metadata_;
  advertising_metadata_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* ConnectionsLog_AdvertisingPhase::unsafe_arena_release_advertising_metadata() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.advertising_metadata)
  _has_bits_[0] &= ~0x00000001u;
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* temp = advertising_metadata_;
  advertising_metadata_ = nullptr;
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* ConnectionsLog_AdvertisingPhase::_internal_mutable_advertising_metadata() {
  _has_bits_[0] |= 0x00000001u;
  if (advertising_metadata_ == nullptr) {
    auto* p = CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata>(GetArenaForAllocation());
    advertising_metadata_ = p;
  }
  return advertising_metadata_;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* ConnectionsLog_AdvertisingPhase::mutable_advertising_metadata() {
  ::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* _msg = _internal_mutable_advertising_metadata();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.advertising_metadata)
  return _msg;
}
inline void ConnectionsLog_AdvertisingPhase::set_allocated_advertising_metadata(::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata* advertising_metadata) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete advertising_metadata_;
  }
  if (advertising_metadata) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::location::nearby::analytics::proto::ConnectionsLog_AdvertisingMetadata>::GetOwningArena(advertising_metadata);
    if (message_arena != submessage_arena) {
      advertising_metadata = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, advertising_metadata, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  advertising_metadata_ = advertising_metadata;
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.AdvertisingPhase.advertising_metadata)
}

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

// ConnectionsLog_ConnectionRequest

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_ConnectionRequest::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionRequest::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_ConnectionRequest::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000001u;
}
inline int64_t ConnectionsLog_ConnectionRequest::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_ConnectionRequest::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_ConnectionRequest::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000001u;
  duration_millis_ = value;
}
inline void ConnectionsLog_ConnectionRequest::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.duration_millis)
}

// optional int64 request_delay_millis = 2;
inline bool ConnectionsLog_ConnectionRequest::_internal_has_request_delay_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionRequest::has_request_delay_millis() const {
  return _internal_has_request_delay_millis();
}
inline void ConnectionsLog_ConnectionRequest::clear_request_delay_millis() {
  request_delay_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_ConnectionRequest::_internal_request_delay_millis() const {
  return request_delay_millis_;
}
inline int64_t ConnectionsLog_ConnectionRequest::request_delay_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.request_delay_millis)
  return _internal_request_delay_millis();
}
inline void ConnectionsLog_ConnectionRequest::_internal_set_request_delay_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  request_delay_millis_ = value;
}
inline void ConnectionsLog_ConnectionRequest::set_request_delay_millis(int64_t value) {
  _internal_set_request_delay_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.request_delay_millis)
}

// optional .location.nearby.proto.connections.ConnectionRequestResponse local_response = 3;
inline bool ConnectionsLog_ConnectionRequest::_internal_has_local_response() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionRequest::has_local_response() const {
  return _internal_has_local_response();
}
inline void ConnectionsLog_ConnectionRequest::clear_local_response() {
  local_response_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::ConnectionRequestResponse ConnectionsLog_ConnectionRequest::_internal_local_response() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionRequestResponse >(local_response_);
}
inline ::location::nearby::proto::connections::ConnectionRequestResponse ConnectionsLog_ConnectionRequest::local_response() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.local_response)
  return _internal_local_response();
}
inline void ConnectionsLog_ConnectionRequest::_internal_set_local_response(::location::nearby::proto::connections::ConnectionRequestResponse value) {
  assert(::location::nearby::proto::connections::ConnectionRequestResponse_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  local_response_ = value;
}
inline void ConnectionsLog_ConnectionRequest::set_local_response(::location::nearby::proto::connections::ConnectionRequestResponse value) {
  _internal_set_local_response(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.local_response)
}

// optional .location.nearby.proto.connections.ConnectionRequestResponse remote_response = 4;
inline bool ConnectionsLog_ConnectionRequest::_internal_has_remote_response() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionRequest::has_remote_response() const {
  return _internal_has_remote_response();
}
inline void ConnectionsLog_ConnectionRequest::clear_remote_response() {
  remote_response_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::ConnectionRequestResponse ConnectionsLog_ConnectionRequest::_internal_remote_response() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionRequestResponse >(remote_response_);
}
inline ::location::nearby::proto::connections::ConnectionRequestResponse ConnectionsLog_ConnectionRequest::remote_response() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.remote_response)
  return _internal_remote_response();
}
inline void ConnectionsLog_ConnectionRequest::_internal_set_remote_response(::location::nearby::proto::connections::ConnectionRequestResponse value) {
  assert(::location::nearby::proto::connections::ConnectionRequestResponse_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  remote_response_ = value;
}
inline void ConnectionsLog_ConnectionRequest::set_remote_response(::location::nearby::proto::connections::ConnectionRequestResponse value) {
  _internal_set_remote_response(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.remote_response)
}

// optional int64 client_flow_id = 5;
inline bool ConnectionsLog_ConnectionRequest::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionRequest::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_ConnectionRequest::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000010u;
}
inline int64_t ConnectionsLog_ConnectionRequest::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_ConnectionRequest::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_ConnectionRequest::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000010u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_ConnectionRequest::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionRequest.client_flow_id)
}

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

// ConnectionsLog_ConnectionAttempt

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_ConnectionAttempt::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000004u;
}
inline int64_t ConnectionsLog_ConnectionAttempt::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_ConnectionAttempt::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000004u;
  duration_millis_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.duration_millis)
}

// optional .location.nearby.proto.connections.ConnectionAttemptType type = 2;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_type() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_type() const {
  return _internal_has_type();
}
inline void ConnectionsLog_ConnectionAttempt::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptType ConnectionsLog_ConnectionAttempt::_internal_type() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptType >(type_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptType ConnectionsLog_ConnectionAttempt::type() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.type)
  return _internal_type();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_type(::location::nearby::proto::connections::ConnectionAttemptType value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptType_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  type_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_type(::location::nearby::proto::connections::ConnectionAttemptType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.type)
}

// optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 3;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_direction() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_direction() const {
  return _internal_has_direction();
}
inline void ConnectionsLog_ConnectionAttempt::clear_direction() {
  direction_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_ConnectionAttempt::_internal_direction() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptDirection >(direction_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_ConnectionAttempt::direction() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.direction)
  return _internal_direction();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptDirection_IsValid(value));
  _has_bits_[0] |= 0x00000010u;
  direction_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.direction)
}

// optional .location.nearby.proto.connections.Medium medium = 4;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_medium() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_medium() const {
  return _internal_has_medium();
}
inline void ConnectionsLog_ConnectionAttempt::clear_medium() {
  medium_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_ConnectionAttempt::_internal_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_ConnectionAttempt::medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.medium)
  return _internal_medium();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  medium_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.medium)
}

// optional .location.nearby.proto.connections.ConnectionAttemptResult attempt_result = 5;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_attempt_result() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_attempt_result() const {
  return _internal_has_attempt_result();
}
inline void ConnectionsLog_ConnectionAttempt::clear_attempt_result() {
  attempt_result_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptResult ConnectionsLog_ConnectionAttempt::_internal_attempt_result() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptResult >(attempt_result_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptResult ConnectionsLog_ConnectionAttempt::attempt_result() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.attempt_result)
  return _internal_attempt_result();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_attempt_result(::location::nearby::proto::connections::ConnectionAttemptResult value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptResult_IsValid(value));
  _has_bits_[0] |= 0x00000040u;
  attempt_result_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_attempt_result(::location::nearby::proto::connections::ConnectionAttemptResult value) {
  _internal_set_attempt_result(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.attempt_result)
}

// optional int64 client_flow_id = 6;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_ConnectionAttempt::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000080u;
}
inline int64_t ConnectionsLog_ConnectionAttempt::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_ConnectionAttempt::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000080u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_ConnectionAttempt::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.client_flow_id)
}

// optional string connection_token = 7;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_connection_token() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_connection_token() const {
  return _internal_has_connection_token();
}
inline void ConnectionsLog_ConnectionAttempt::clear_connection_token() {
  connection_token_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_ConnectionAttempt::connection_token() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_token)
  return _internal_connection_token();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ConnectionAttempt::set_connection_token(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_token)
}
inline std::string* ConnectionsLog_ConnectionAttempt::mutable_connection_token() {
  std::string* _s = _internal_mutable_connection_token();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_token)
  return _s;
}
inline const std::string& ConnectionsLog_ConnectionAttempt::_internal_connection_token() const {
  return connection_token_.Get();
}
inline void ConnectionsLog_ConnectionAttempt::_internal_set_connection_token(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttempt::_internal_mutable_connection_token() {
  _has_bits_[0] |= 0x00000001u;
  return connection_token_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttempt::release_connection_token() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_token)
  if (!_internal_has_connection_token()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = connection_token_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ConnectionAttempt::set_allocated_connection_token(std::string* connection_token) {
  if (connection_token != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  connection_token_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_token,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_token)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata connection_attempt_metadata = 8;
inline bool ConnectionsLog_ConnectionAttempt::_internal_has_connection_attempt_metadata() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || connection_attempt_metadata_ != nullptr);
  return value;
}
inline bool ConnectionsLog_ConnectionAttempt::has_connection_attempt_metadata() const {
  return _internal_has_connection_attempt_metadata();
}
inline void ConnectionsLog_ConnectionAttempt::clear_connection_attempt_metadata() {
  if (connection_attempt_metadata_ != nullptr) connection_attempt_metadata_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata& ConnectionsLog_ConnectionAttempt::_internal_connection_attempt_metadata() const {
  const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* p = connection_attempt_metadata_;
  return p != nullptr ? *p : reinterpret_cast<const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata&>(
      ::location::nearby::analytics::proto::_ConnectionsLog_ConnectionAttemptMetadata_default_instance_);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata& ConnectionsLog_ConnectionAttempt::connection_attempt_metadata() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_attempt_metadata)
  return _internal_connection_attempt_metadata();
}
inline void ConnectionsLog_ConnectionAttempt::unsafe_arena_set_allocated_connection_attempt_metadata(
    ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* connection_attempt_metadata) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(connection_attempt_metadata_);
  }
  connection_attempt_metadata_ = connection_attempt_metadata;
  if (connection_attempt_metadata) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_attempt_metadata)
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* ConnectionsLog_ConnectionAttempt::release_connection_attempt_metadata() {
  _has_bits_[0] &= ~0x00000002u;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* temp = connection_attempt_metadata_;
  connection_attempt_metadata_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* ConnectionsLog_ConnectionAttempt::unsafe_arena_release_connection_attempt_metadata() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_attempt_metadata)
  _has_bits_[0] &= ~0x00000002u;
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* temp = connection_attempt_metadata_;
  connection_attempt_metadata_ = nullptr;
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* ConnectionsLog_ConnectionAttempt::_internal_mutable_connection_attempt_metadata() {
  _has_bits_[0] |= 0x00000002u;
  if (connection_attempt_metadata_ == nullptr) {
    auto* p = CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata>(GetArenaForAllocation());
    connection_attempt_metadata_ = p;
  }
  return connection_attempt_metadata_;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* ConnectionsLog_ConnectionAttempt::mutable_connection_attempt_metadata() {
  ::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* _msg = _internal_mutable_connection_attempt_metadata();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_attempt_metadata)
  return _msg;
}
inline void ConnectionsLog_ConnectionAttempt::set_allocated_connection_attempt_metadata(::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata* connection_attempt_metadata) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete connection_attempt_metadata_;
  }
  if (connection_attempt_metadata) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::location::nearby::analytics::proto::ConnectionsLog_ConnectionAttemptMetadata>::GetOwningArena(connection_attempt_metadata);
    if (message_arena != submessage_arena) {
      connection_attempt_metadata = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, connection_attempt_metadata, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  connection_attempt_metadata_ = connection_attempt_metadata;
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttempt.connection_attempt_metadata)
}

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

// ConnectionsLog_EstablishedConnection

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_EstablishedConnection::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_EstablishedConnection::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_EstablishedConnection::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.duration_millis)
}

// optional .location.nearby.proto.connections.Medium medium = 2;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_medium() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_medium() const {
  return _internal_has_medium();
}
inline void ConnectionsLog_EstablishedConnection::clear_medium() {
  medium_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_EstablishedConnection::_internal_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_EstablishedConnection::medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.medium)
  return _internal_medium();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  medium_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.medium)
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.Payload sent_payload = 3;
inline int ConnectionsLog_EstablishedConnection::_internal_sent_payload_size() const {
  return sent_payload_.size();
}
inline int ConnectionsLog_EstablishedConnection::sent_payload_size() const {
  return _internal_sent_payload_size();
}
inline void ConnectionsLog_EstablishedConnection::clear_sent_payload() {
  sent_payload_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::mutable_sent_payload(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.sent_payload)
  return sent_payload_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >*
ConnectionsLog_EstablishedConnection::mutable_sent_payload() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.sent_payload)
  return &sent_payload_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_Payload& ConnectionsLog_EstablishedConnection::_internal_sent_payload(int index) const {
  return sent_payload_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_Payload& ConnectionsLog_EstablishedConnection::sent_payload(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.sent_payload)
  return _internal_sent_payload(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::_internal_add_sent_payload() {
  return sent_payload_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::add_sent_payload() {
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* _add = _internal_add_sent_payload();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.sent_payload)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >&
ConnectionsLog_EstablishedConnection::sent_payload() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.sent_payload)
  return sent_payload_;
}

// repeated .location.nearby.analytics.proto.ConnectionsLog.Payload received_payload = 4;
inline int ConnectionsLog_EstablishedConnection::_internal_received_payload_size() const {
  return received_payload_.size();
}
inline int ConnectionsLog_EstablishedConnection::received_payload_size() const {
  return _internal_received_payload_size();
}
inline void ConnectionsLog_EstablishedConnection::clear_received_payload() {
  received_payload_.Clear();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::mutable_received_payload(int index) {
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.received_payload)
  return received_payload_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >*
ConnectionsLog_EstablishedConnection::mutable_received_payload() {
  // @@protoc_insertion_point(field_mutable_list:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.received_payload)
  return &received_payload_;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_Payload& ConnectionsLog_EstablishedConnection::_internal_received_payload(int index) const {
  return received_payload_.Get(index);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_Payload& ConnectionsLog_EstablishedConnection::received_payload(int index) const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.received_payload)
  return _internal_received_payload(index);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::_internal_add_received_payload() {
  return received_payload_.Add();
}
inline ::location::nearby::analytics::proto::ConnectionsLog_Payload* ConnectionsLog_EstablishedConnection::add_received_payload() {
  ::location::nearby::analytics::proto::ConnectionsLog_Payload* _add = _internal_add_received_payload();
  // @@protoc_insertion_point(field_add:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.received_payload)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::location::nearby::analytics::proto::ConnectionsLog_Payload >&
ConnectionsLog_EstablishedConnection::received_payload() const {
  // @@protoc_insertion_point(field_list:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.received_payload)
  return received_payload_;
}

// optional .location.nearby.proto.connections.DisconnectionReason disconnection_reason = 5;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_disconnection_reason() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_disconnection_reason() const {
  return _internal_has_disconnection_reason();
}
inline void ConnectionsLog_EstablishedConnection::clear_disconnection_reason() {
  disconnection_reason_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::DisconnectionReason ConnectionsLog_EstablishedConnection::_internal_disconnection_reason() const {
  return static_cast< ::location::nearby::proto::connections::DisconnectionReason >(disconnection_reason_);
}
inline ::location::nearby::proto::connections::DisconnectionReason ConnectionsLog_EstablishedConnection::disconnection_reason() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.disconnection_reason)
  return _internal_disconnection_reason();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_disconnection_reason(::location::nearby::proto::connections::DisconnectionReason value) {
  assert(::location::nearby::proto::connections::DisconnectionReason_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  disconnection_reason_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_disconnection_reason(::location::nearby::proto::connections::DisconnectionReason value) {
  _internal_set_disconnection_reason(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.disconnection_reason)
}

// optional int64 client_flow_id = 6;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_EstablishedConnection::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000010u;
}
inline int64_t ConnectionsLog_EstablishedConnection::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_EstablishedConnection::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000010u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.client_flow_id)
}

// optional string connection_token = 7;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_connection_token() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_connection_token() const {
  return _internal_has_connection_token();
}
inline void ConnectionsLog_EstablishedConnection::clear_connection_token() {
  connection_token_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_EstablishedConnection::connection_token() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.connection_token)
  return _internal_connection_token();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_EstablishedConnection::set_connection_token(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.connection_token)
}
inline std::string* ConnectionsLog_EstablishedConnection::mutable_connection_token() {
  std::string* _s = _internal_mutable_connection_token();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.connection_token)
  return _s;
}
inline const std::string& ConnectionsLog_EstablishedConnection::_internal_connection_token() const {
  return connection_token_.Get();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_connection_token(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_EstablishedConnection::_internal_mutable_connection_token() {
  _has_bits_[0] |= 0x00000001u;
  return connection_token_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_EstablishedConnection::release_connection_token() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.connection_token)
  if (!_internal_has_connection_token()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = connection_token_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_EstablishedConnection::set_allocated_connection_token(std::string* connection_token) {
  if (connection_token != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  connection_token_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_token,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.connection_token)
}

// optional .location.nearby.proto.connections.ConnectionAttemptType type = 8;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_type() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_type() const {
  return _internal_has_type();
}
inline void ConnectionsLog_EstablishedConnection::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptType ConnectionsLog_EstablishedConnection::_internal_type() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptType >(type_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptType ConnectionsLog_EstablishedConnection::type() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.type)
  return _internal_type();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_type(::location::nearby::proto::connections::ConnectionAttemptType value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptType_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  type_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_type(::location::nearby::proto::connections::ConnectionAttemptType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.type)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.SafeDisconnectionResult safe_disconnection_result = 9;
inline bool ConnectionsLog_EstablishedConnection::_internal_has_safe_disconnection_result() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_EstablishedConnection::has_safe_disconnection_result() const {
  return _internal_has_safe_disconnection_result();
}
inline void ConnectionsLog_EstablishedConnection::clear_safe_disconnection_result() {
  safe_disconnection_result_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult ConnectionsLog_EstablishedConnection::_internal_safe_disconnection_result() const {
  return static_cast< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult >(safe_disconnection_result_);
}
inline ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult ConnectionsLog_EstablishedConnection::safe_disconnection_result() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.safe_disconnection_result)
  return _internal_safe_disconnection_result();
}
inline void ConnectionsLog_EstablishedConnection::_internal_set_safe_disconnection_result(::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult value) {
  assert(::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult_IsValid(value));
  _has_bits_[0] |= 0x00000040u;
  safe_disconnection_result_ = value;
}
inline void ConnectionsLog_EstablishedConnection::set_safe_disconnection_result(::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult value) {
  _internal_set_safe_disconnection_result(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.EstablishedConnection.safe_disconnection_result)
}

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

// ConnectionsLog_Payload

// optional int64 duration_millis = 1;
inline bool ConnectionsLog_Payload::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_Payload::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000001u;
}
inline int64_t ConnectionsLog_Payload::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_Payload::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_Payload::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000001u;
  duration_millis_ = value;
}
inline void ConnectionsLog_Payload::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.duration_millis)
}

// optional .location.nearby.proto.connections.PayloadType type = 2;
inline bool ConnectionsLog_Payload::_internal_has_type() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_type() const {
  return _internal_has_type();
}
inline void ConnectionsLog_Payload::clear_type() {
  type_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::PayloadType ConnectionsLog_Payload::_internal_type() const {
  return static_cast< ::location::nearby::proto::connections::PayloadType >(type_);
}
inline ::location::nearby::proto::connections::PayloadType ConnectionsLog_Payload::type() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.type)
  return _internal_type();
}
inline void ConnectionsLog_Payload::_internal_set_type(::location::nearby::proto::connections::PayloadType value) {
  assert(::location::nearby::proto::connections::PayloadType_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  type_ = value;
}
inline void ConnectionsLog_Payload::set_type(::location::nearby::proto::connections::PayloadType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.type)
}

// optional int64 total_size_bytes = 3;
inline bool ConnectionsLog_Payload::_internal_has_total_size_bytes() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_total_size_bytes() const {
  return _internal_has_total_size_bytes();
}
inline void ConnectionsLog_Payload::clear_total_size_bytes() {
  total_size_bytes_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_Payload::_internal_total_size_bytes() const {
  return total_size_bytes_;
}
inline int64_t ConnectionsLog_Payload::total_size_bytes() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.total_size_bytes)
  return _internal_total_size_bytes();
}
inline void ConnectionsLog_Payload::_internal_set_total_size_bytes(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  total_size_bytes_ = value;
}
inline void ConnectionsLog_Payload::set_total_size_bytes(int64_t value) {
  _internal_set_total_size_bytes(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.total_size_bytes)
}

// optional int64 num_bytes_transferred = 4;
inline bool ConnectionsLog_Payload::_internal_has_num_bytes_transferred() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_num_bytes_transferred() const {
  return _internal_has_num_bytes_transferred();
}
inline void ConnectionsLog_Payload::clear_num_bytes_transferred() {
  num_bytes_transferred_ = int64_t{0};
  _has_bits_[0] &= ~0x00000010u;
}
inline int64_t ConnectionsLog_Payload::_internal_num_bytes_transferred() const {
  return num_bytes_transferred_;
}
inline int64_t ConnectionsLog_Payload::num_bytes_transferred() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.num_bytes_transferred)
  return _internal_num_bytes_transferred();
}
inline void ConnectionsLog_Payload::_internal_set_num_bytes_transferred(int64_t value) {
  _has_bits_[0] |= 0x00000010u;
  num_bytes_transferred_ = value;
}
inline void ConnectionsLog_Payload::set_num_bytes_transferred(int64_t value) {
  _internal_set_num_bytes_transferred(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.num_bytes_transferred)
}

// optional int32 num_chunks = 5;
inline bool ConnectionsLog_Payload::_internal_has_num_chunks() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_num_chunks() const {
  return _internal_has_num_chunks();
}
inline void ConnectionsLog_Payload::clear_num_chunks() {
  num_chunks_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline int32_t ConnectionsLog_Payload::_internal_num_chunks() const {
  return num_chunks_;
}
inline int32_t ConnectionsLog_Payload::num_chunks() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.num_chunks)
  return _internal_num_chunks();
}
inline void ConnectionsLog_Payload::_internal_set_num_chunks(int32_t value) {
  _has_bits_[0] |= 0x00000008u;
  num_chunks_ = value;
}
inline void ConnectionsLog_Payload::set_num_chunks(int32_t value) {
  _internal_set_num_chunks(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.num_chunks)
}

// optional .location.nearby.proto.connections.PayloadStatus status = 6;
inline bool ConnectionsLog_Payload::_internal_has_status() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_status() const {
  return _internal_has_status();
}
inline void ConnectionsLog_Payload::clear_status() {
  status_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::PayloadStatus ConnectionsLog_Payload::_internal_status() const {
  return static_cast< ::location::nearby::proto::connections::PayloadStatus >(status_);
}
inline ::location::nearby::proto::connections::PayloadStatus ConnectionsLog_Payload::status() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.status)
  return _internal_status();
}
inline void ConnectionsLog_Payload::_internal_set_status(::location::nearby::proto::connections::PayloadStatus value) {
  assert(::location::nearby::proto::connections::PayloadStatus_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  status_ = value;
}
inline void ConnectionsLog_Payload::set_status(::location::nearby::proto::connections::PayloadStatus value) {
  _internal_set_status(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.status)
}

// optional int32 num_successful_auto_resume = 7;
inline bool ConnectionsLog_Payload::_internal_has_num_successful_auto_resume() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_Payload::has_num_successful_auto_resume() const {
  return _internal_has_num_successful_auto_resume();
}
inline void ConnectionsLog_Payload::clear_num_successful_auto_resume() {
  num_successful_auto_resume_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline int32_t ConnectionsLog_Payload::_internal_num_successful_auto_resume() const {
  return num_successful_auto_resume_;
}
inline int32_t ConnectionsLog_Payload::num_successful_auto_resume() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.Payload.num_successful_auto_resume)
  return _internal_num_successful_auto_resume();
}
inline void ConnectionsLog_Payload::_internal_set_num_successful_auto_resume(int32_t value) {
  _has_bits_[0] |= 0x00000040u;
  num_successful_auto_resume_ = value;
}
inline void ConnectionsLog_Payload::set_num_successful_auto_resume(int32_t value) {
  _internal_set_num_successful_auto_resume(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.Payload.num_successful_auto_resume)
}

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

// ConnectionsLog_BandwidthUpgradeAttempt

// optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 1;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_direction() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_direction() const {
  return _internal_has_direction();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_direction() {
  direction_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_BandwidthUpgradeAttempt::_internal_direction() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptDirection >(direction_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_BandwidthUpgradeAttempt::direction() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.direction)
  return _internal_direction();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptDirection_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  direction_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.direction)
}

// optional int64 duration_millis = 2;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_duration_millis() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_duration_millis() const {
  return _internal_has_duration_millis();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_duration_millis() {
  duration_millis_ = int64_t{0};
  _has_bits_[0] &= ~0x00000002u;
}
inline int64_t ConnectionsLog_BandwidthUpgradeAttempt::_internal_duration_millis() const {
  return duration_millis_;
}
inline int64_t ConnectionsLog_BandwidthUpgradeAttempt::duration_millis() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.duration_millis)
  return _internal_duration_millis();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_duration_millis(int64_t value) {
  _has_bits_[0] |= 0x00000002u;
  duration_millis_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_duration_millis(int64_t value) {
  _internal_set_duration_millis(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.duration_millis)
}

// optional .location.nearby.proto.connections.Medium from_medium = 3;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_from_medium() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_from_medium() const {
  return _internal_has_from_medium();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_from_medium() {
  from_medium_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_BandwidthUpgradeAttempt::_internal_from_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(from_medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_BandwidthUpgradeAttempt::from_medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.from_medium)
  return _internal_from_medium();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_from_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  from_medium_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_from_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_from_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.from_medium)
}

// optional .location.nearby.proto.connections.Medium to_medium = 4;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_to_medium() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_to_medium() const {
  return _internal_has_to_medium();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_to_medium() {
  to_medium_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_BandwidthUpgradeAttempt::_internal_to_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(to_medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_BandwidthUpgradeAttempt::to_medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.to_medium)
  return _internal_to_medium();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_to_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000010u;
  to_medium_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_to_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_to_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.to_medium)
}

// optional .location.nearby.proto.connections.BandwidthUpgradeResult upgrade_result = 5;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_upgrade_result() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_upgrade_result() const {
  return _internal_has_upgrade_result();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_upgrade_result() {
  upgrade_result_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::BandwidthUpgradeResult ConnectionsLog_BandwidthUpgradeAttempt::_internal_upgrade_result() const {
  return static_cast< ::location::nearby::proto::connections::BandwidthUpgradeResult >(upgrade_result_);
}
inline ::location::nearby::proto::connections::BandwidthUpgradeResult ConnectionsLog_BandwidthUpgradeAttempt::upgrade_result() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.upgrade_result)
  return _internal_upgrade_result();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_upgrade_result(::location::nearby::proto::connections::BandwidthUpgradeResult value) {
  assert(::location::nearby::proto::connections::BandwidthUpgradeResult_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  upgrade_result_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_upgrade_result(::location::nearby::proto::connections::BandwidthUpgradeResult value) {
  _internal_set_upgrade_result(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.upgrade_result)
}

// optional .location.nearby.proto.connections.BandwidthUpgradeErrorStage error_stage = 6;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_error_stage() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_error_stage() const {
  return _internal_has_error_stage();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_error_stage() {
  error_stage_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline ::location::nearby::proto::connections::BandwidthUpgradeErrorStage ConnectionsLog_BandwidthUpgradeAttempt::_internal_error_stage() const {
  return static_cast< ::location::nearby::proto::connections::BandwidthUpgradeErrorStage >(error_stage_);
}
inline ::location::nearby::proto::connections::BandwidthUpgradeErrorStage ConnectionsLog_BandwidthUpgradeAttempt::error_stage() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.error_stage)
  return _internal_error_stage();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_error_stage(::location::nearby::proto::connections::BandwidthUpgradeErrorStage value) {
  assert(::location::nearby::proto::connections::BandwidthUpgradeErrorStage_IsValid(value));
  _has_bits_[0] |= 0x00000080u;
  error_stage_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_error_stage(::location::nearby::proto::connections::BandwidthUpgradeErrorStage value) {
  _internal_set_error_stage(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.error_stage)
}

// optional int64 client_flow_id = 7;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_client_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_client_flow_id() const {
  return _internal_has_client_flow_id();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_client_flow_id() {
  client_flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000040u;
}
inline int64_t ConnectionsLog_BandwidthUpgradeAttempt::_internal_client_flow_id() const {
  return client_flow_id_;
}
inline int64_t ConnectionsLog_BandwidthUpgradeAttempt::client_flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.client_flow_id)
  return _internal_client_flow_id();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_client_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000040u;
  client_flow_id_ = value;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_client_flow_id(int64_t value) {
  _internal_set_client_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.client_flow_id)
}

// optional string connection_token = 8;
inline bool ConnectionsLog_BandwidthUpgradeAttempt::_internal_has_connection_token() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_BandwidthUpgradeAttempt::has_connection_token() const {
  return _internal_has_connection_token();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::clear_connection_token() {
  connection_token_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_BandwidthUpgradeAttempt::connection_token() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.connection_token)
  return _internal_connection_token();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_BandwidthUpgradeAttempt::set_connection_token(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.connection_token)
}
inline std::string* ConnectionsLog_BandwidthUpgradeAttempt::mutable_connection_token() {
  std::string* _s = _internal_mutable_connection_token();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.connection_token)
  return _s;
}
inline const std::string& ConnectionsLog_BandwidthUpgradeAttempt::_internal_connection_token() const {
  return connection_token_.Get();
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::_internal_set_connection_token(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_BandwidthUpgradeAttempt::_internal_mutable_connection_token() {
  _has_bits_[0] |= 0x00000001u;
  return connection_token_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_BandwidthUpgradeAttempt::release_connection_token() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.connection_token)
  if (!_internal_has_connection_token()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = connection_token_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_BandwidthUpgradeAttempt::set_allocated_connection_token(std::string* connection_token) {
  if (connection_token != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  connection_token_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_token,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.BandwidthUpgradeAttempt.connection_token)
}

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

// ConnectionsLog_ErrorCode

// optional .location.nearby.proto.connections.ConnectionAttemptDirection direction = 1;
inline bool ConnectionsLog_ErrorCode::_internal_has_direction() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_direction() const {
  return _internal_has_direction();
}
inline void ConnectionsLog_ErrorCode::clear_direction() {
  direction_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_ErrorCode::_internal_direction() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionAttemptDirection >(direction_);
}
inline ::location::nearby::proto::connections::ConnectionAttemptDirection ConnectionsLog_ErrorCode::direction() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.direction)
  return _internal_direction();
}
inline void ConnectionsLog_ErrorCode::_internal_set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  assert(::location::nearby::proto::connections::ConnectionAttemptDirection_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  direction_ = value;
}
inline void ConnectionsLog_ErrorCode::set_direction(::location::nearby::proto::connections::ConnectionAttemptDirection value) {
  _internal_set_direction(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.direction)
}

// optional string service_id = 2;
inline bool ConnectionsLog_ErrorCode::_internal_has_service_id() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_service_id() const {
  return _internal_has_service_id();
}
inline void ConnectionsLog_ErrorCode::clear_service_id() {
  service_id_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_ErrorCode::service_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.service_id)
  return _internal_service_id();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ErrorCode::set_service_id(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 service_id_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.service_id)
}
inline std::string* ConnectionsLog_ErrorCode::mutable_service_id() {
  std::string* _s = _internal_mutable_service_id();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.service_id)
  return _s;
}
inline const std::string& ConnectionsLog_ErrorCode::_internal_service_id() const {
  return service_id_.Get();
}
inline void ConnectionsLog_ErrorCode::_internal_set_service_id(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  service_id_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ErrorCode::_internal_mutable_service_id() {
  _has_bits_[0] |= 0x00000001u;
  return service_id_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ErrorCode::release_service_id() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.service_id)
  if (!_internal_has_service_id()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = service_id_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (service_id_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    service_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ErrorCode::set_allocated_service_id(std::string* service_id) {
  if (service_id != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  service_id_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), service_id,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (service_id_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    service_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.service_id)
}

// optional .location.nearby.proto.connections.Medium medium = 3;
inline bool ConnectionsLog_ErrorCode::_internal_has_medium() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_medium() const {
  return _internal_has_medium();
}
inline void ConnectionsLog_ErrorCode::clear_medium() {
  medium_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_ErrorCode::_internal_medium() const {
  return static_cast< ::location::nearby::proto::connections::Medium >(medium_);
}
inline ::location::nearby::proto::connections::Medium ConnectionsLog_ErrorCode::medium() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.medium)
  return _internal_medium();
}
inline void ConnectionsLog_ErrorCode::_internal_set_medium(::location::nearby::proto::connections::Medium value) {
  assert(::location::nearby::proto::connections::Medium_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  medium_ = value;
}
inline void ConnectionsLog_ErrorCode::set_medium(::location::nearby::proto::connections::Medium value) {
  _internal_set_medium(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.medium)
}

// optional .location.nearby.errorcode.proto.Event event = 4;
inline bool ConnectionsLog_ErrorCode::_internal_has_event() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_event() const {
  return _internal_has_event();
}
inline void ConnectionsLog_ErrorCode::clear_event() {
  event_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::location::nearby::errorcode::proto::Event ConnectionsLog_ErrorCode::_internal_event() const {
  return static_cast< ::location::nearby::errorcode::proto::Event >(event_);
}
inline ::location::nearby::errorcode::proto::Event ConnectionsLog_ErrorCode::event() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.event)
  return _internal_event();
}
inline void ConnectionsLog_ErrorCode::_internal_set_event(::location::nearby::errorcode::proto::Event value) {
  assert(::location::nearby::errorcode::proto::Event_IsValid(value));
  _has_bits_[0] |= 0x00000010u;
  event_ = value;
}
inline void ConnectionsLog_ErrorCode::set_event(::location::nearby::errorcode::proto::Event value) {
  _internal_set_event(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.event)
}

// optional .location.nearby.errorcode.proto.Description description = 5;
inline bool ConnectionsLog_ErrorCode::_internal_has_description() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_description() const {
  return _internal_has_description();
}
inline void ConnectionsLog_ErrorCode::clear_description() {
  description_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::errorcode::proto::Description ConnectionsLog_ErrorCode::_internal_description() const {
  return static_cast< ::location::nearby::errorcode::proto::Description >(description_);
}
inline ::location::nearby::errorcode::proto::Description ConnectionsLog_ErrorCode::description() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.description)
  return _internal_description();
}
inline void ConnectionsLog_ErrorCode::_internal_set_description(::location::nearby::errorcode::proto::Description value) {
  assert(::location::nearby::errorcode::proto::Description_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  description_ = value;
}
inline void ConnectionsLog_ErrorCode::set_description(::location::nearby::errorcode::proto::Description value) {
  _internal_set_description(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.description)
}

// optional int64 flow_id = 6;
inline bool ConnectionsLog_ErrorCode::_internal_has_flow_id() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_flow_id() const {
  return _internal_has_flow_id();
}
inline void ConnectionsLog_ErrorCode::clear_flow_id() {
  flow_id_ = int64_t{0};
  _has_bits_[0] &= ~0x00000040u;
}
inline int64_t ConnectionsLog_ErrorCode::_internal_flow_id() const {
  return flow_id_;
}
inline int64_t ConnectionsLog_ErrorCode::flow_id() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.flow_id)
  return _internal_flow_id();
}
inline void ConnectionsLog_ErrorCode::_internal_set_flow_id(int64_t value) {
  _has_bits_[0] |= 0x00000040u;
  flow_id_ = value;
}
inline void ConnectionsLog_ErrorCode::set_flow_id(int64_t value) {
  _internal_set_flow_id(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.flow_id)
}

// .location.nearby.errorcode.proto.CommonError common_error = 7;
inline bool ConnectionsLog_ErrorCode::_internal_has_common_error() const {
  return ErrorCodeDetail_case() == kCommonError;
}
inline bool ConnectionsLog_ErrorCode::has_common_error() const {
  return _internal_has_common_error();
}
inline void ConnectionsLog_ErrorCode::set_has_common_error() {
  _oneof_case_[0] = kCommonError;
}
inline void ConnectionsLog_ErrorCode::clear_common_error() {
  if (_internal_has_common_error()) {
    ErrorCodeDetail_.common_error_ = 0;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::CommonError ConnectionsLog_ErrorCode::_internal_common_error() const {
  if (_internal_has_common_error()) {
    return static_cast< ::location::nearby::errorcode::proto::CommonError >(ErrorCodeDetail_.common_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::CommonError >(0);
}
inline ::location::nearby::errorcode::proto::CommonError ConnectionsLog_ErrorCode::common_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.common_error)
  return _internal_common_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_common_error(::location::nearby::errorcode::proto::CommonError value) {
  assert(::location::nearby::errorcode::proto::CommonError_IsValid(value));
  if (!_internal_has_common_error()) {
    clear_ErrorCodeDetail();
    set_has_common_error();
  }
  ErrorCodeDetail_.common_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_common_error(::location::nearby::errorcode::proto::CommonError value) {
  _internal_set_common_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.common_error)
}

// .location.nearby.errorcode.proto.StartAdvertisingError start_advertising_error = 8;
inline bool ConnectionsLog_ErrorCode::_internal_has_start_advertising_error() const {
  return ErrorCodeDetail_case() == kStartAdvertisingError;
}
inline bool ConnectionsLog_ErrorCode::has_start_advertising_error() const {
  return _internal_has_start_advertising_error();
}
inline void ConnectionsLog_ErrorCode::set_has_start_advertising_error() {
  _oneof_case_[0] = kStartAdvertisingError;
}
inline void ConnectionsLog_ErrorCode::clear_start_advertising_error() {
  if (_internal_has_start_advertising_error()) {
    ErrorCodeDetail_.start_advertising_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StartAdvertisingError ConnectionsLog_ErrorCode::_internal_start_advertising_error() const {
  if (_internal_has_start_advertising_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StartAdvertisingError >(ErrorCodeDetail_.start_advertising_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StartAdvertisingError >(31);
}
inline ::location::nearby::errorcode::proto::StartAdvertisingError ConnectionsLog_ErrorCode::start_advertising_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_advertising_error)
  return _internal_start_advertising_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_start_advertising_error(::location::nearby::errorcode::proto::StartAdvertisingError value) {
  assert(::location::nearby::errorcode::proto::StartAdvertisingError_IsValid(value));
  if (!_internal_has_start_advertising_error()) {
    clear_ErrorCodeDetail();
    set_has_start_advertising_error();
  }
  ErrorCodeDetail_.start_advertising_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_start_advertising_error(::location::nearby::errorcode::proto::StartAdvertisingError value) {
  _internal_set_start_advertising_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_advertising_error)
}

// .location.nearby.errorcode.proto.StartDiscoveringError start_discovering_error = 9;
inline bool ConnectionsLog_ErrorCode::_internal_has_start_discovering_error() const {
  return ErrorCodeDetail_case() == kStartDiscoveringError;
}
inline bool ConnectionsLog_ErrorCode::has_start_discovering_error() const {
  return _internal_has_start_discovering_error();
}
inline void ConnectionsLog_ErrorCode::set_has_start_discovering_error() {
  _oneof_case_[0] = kStartDiscoveringError;
}
inline void ConnectionsLog_ErrorCode::clear_start_discovering_error() {
  if (_internal_has_start_discovering_error()) {
    ErrorCodeDetail_.start_discovering_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StartDiscoveringError ConnectionsLog_ErrorCode::_internal_start_discovering_error() const {
  if (_internal_has_start_discovering_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StartDiscoveringError >(ErrorCodeDetail_.start_discovering_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StartDiscoveringError >(31);
}
inline ::location::nearby::errorcode::proto::StartDiscoveringError ConnectionsLog_ErrorCode::start_discovering_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_discovering_error)
  return _internal_start_discovering_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_start_discovering_error(::location::nearby::errorcode::proto::StartDiscoveringError value) {
  assert(::location::nearby::errorcode::proto::StartDiscoveringError_IsValid(value));
  if (!_internal_has_start_discovering_error()) {
    clear_ErrorCodeDetail();
    set_has_start_discovering_error();
  }
  ErrorCodeDetail_.start_discovering_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_start_discovering_error(::location::nearby::errorcode::proto::StartDiscoveringError value) {
  _internal_set_start_discovering_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_discovering_error)
}

// .location.nearby.errorcode.proto.StopAdvertisingError stop_advertising_error = 10;
inline bool ConnectionsLog_ErrorCode::_internal_has_stop_advertising_error() const {
  return ErrorCodeDetail_case() == kStopAdvertisingError;
}
inline bool ConnectionsLog_ErrorCode::has_stop_advertising_error() const {
  return _internal_has_stop_advertising_error();
}
inline void ConnectionsLog_ErrorCode::set_has_stop_advertising_error() {
  _oneof_case_[0] = kStopAdvertisingError;
}
inline void ConnectionsLog_ErrorCode::clear_stop_advertising_error() {
  if (_internal_has_stop_advertising_error()) {
    ErrorCodeDetail_.stop_advertising_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StopAdvertisingError ConnectionsLog_ErrorCode::_internal_stop_advertising_error() const {
  if (_internal_has_stop_advertising_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StopAdvertisingError >(ErrorCodeDetail_.stop_advertising_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StopAdvertisingError >(31);
}
inline ::location::nearby::errorcode::proto::StopAdvertisingError ConnectionsLog_ErrorCode::stop_advertising_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_advertising_error)
  return _internal_stop_advertising_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_stop_advertising_error(::location::nearby::errorcode::proto::StopAdvertisingError value) {
  assert(::location::nearby::errorcode::proto::StopAdvertisingError_IsValid(value));
  if (!_internal_has_stop_advertising_error()) {
    clear_ErrorCodeDetail();
    set_has_stop_advertising_error();
  }
  ErrorCodeDetail_.stop_advertising_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_stop_advertising_error(::location::nearby::errorcode::proto::StopAdvertisingError value) {
  _internal_set_stop_advertising_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_advertising_error)
}

// .location.nearby.errorcode.proto.StopDiscoveringError stop_discovering_error = 11;
inline bool ConnectionsLog_ErrorCode::_internal_has_stop_discovering_error() const {
  return ErrorCodeDetail_case() == kStopDiscoveringError;
}
inline bool ConnectionsLog_ErrorCode::has_stop_discovering_error() const {
  return _internal_has_stop_discovering_error();
}
inline void ConnectionsLog_ErrorCode::set_has_stop_discovering_error() {
  _oneof_case_[0] = kStopDiscoveringError;
}
inline void ConnectionsLog_ErrorCode::clear_stop_discovering_error() {
  if (_internal_has_stop_discovering_error()) {
    ErrorCodeDetail_.stop_discovering_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StopDiscoveringError ConnectionsLog_ErrorCode::_internal_stop_discovering_error() const {
  if (_internal_has_stop_discovering_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StopDiscoveringError >(ErrorCodeDetail_.stop_discovering_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StopDiscoveringError >(31);
}
inline ::location::nearby::errorcode::proto::StopDiscoveringError ConnectionsLog_ErrorCode::stop_discovering_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_discovering_error)
  return _internal_stop_discovering_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_stop_discovering_error(::location::nearby::errorcode::proto::StopDiscoveringError value) {
  assert(::location::nearby::errorcode::proto::StopDiscoveringError_IsValid(value));
  if (!_internal_has_stop_discovering_error()) {
    clear_ErrorCodeDetail();
    set_has_stop_discovering_error();
  }
  ErrorCodeDetail_.stop_discovering_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_stop_discovering_error(::location::nearby::errorcode::proto::StopDiscoveringError value) {
  _internal_set_stop_discovering_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_discovering_error)
}

// .location.nearby.errorcode.proto.StartListeningIncomingConnectionError start_listening_incoming_connection_error = 12;
inline bool ConnectionsLog_ErrorCode::_internal_has_start_listening_incoming_connection_error() const {
  return ErrorCodeDetail_case() == kStartListeningIncomingConnectionError;
}
inline bool ConnectionsLog_ErrorCode::has_start_listening_incoming_connection_error() const {
  return _internal_has_start_listening_incoming_connection_error();
}
inline void ConnectionsLog_ErrorCode::set_has_start_listening_incoming_connection_error() {
  _oneof_case_[0] = kStartListeningIncomingConnectionError;
}
inline void ConnectionsLog_ErrorCode::clear_start_listening_incoming_connection_error() {
  if (_internal_has_start_listening_incoming_connection_error()) {
    ErrorCodeDetail_.start_listening_incoming_connection_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError ConnectionsLog_ErrorCode::_internal_start_listening_incoming_connection_error() const {
  if (_internal_has_start_listening_incoming_connection_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError >(ErrorCodeDetail_.start_listening_incoming_connection_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError >(31);
}
inline ::location::nearby::errorcode::proto::StartListeningIncomingConnectionError ConnectionsLog_ErrorCode::start_listening_incoming_connection_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_listening_incoming_connection_error)
  return _internal_start_listening_incoming_connection_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_start_listening_incoming_connection_error(::location::nearby::errorcode::proto::StartListeningIncomingConnectionError value) {
  assert(::location::nearby::errorcode::proto::StartListeningIncomingConnectionError_IsValid(value));
  if (!_internal_has_start_listening_incoming_connection_error()) {
    clear_ErrorCodeDetail();
    set_has_start_listening_incoming_connection_error();
  }
  ErrorCodeDetail_.start_listening_incoming_connection_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_start_listening_incoming_connection_error(::location::nearby::errorcode::proto::StartListeningIncomingConnectionError value) {
  _internal_set_start_listening_incoming_connection_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.start_listening_incoming_connection_error)
}

// .location.nearby.errorcode.proto.StopListeningIncomingConnectionError stop_listening_incoming_connection_error = 13;
inline bool ConnectionsLog_ErrorCode::_internal_has_stop_listening_incoming_connection_error() const {
  return ErrorCodeDetail_case() == kStopListeningIncomingConnectionError;
}
inline bool ConnectionsLog_ErrorCode::has_stop_listening_incoming_connection_error() const {
  return _internal_has_stop_listening_incoming_connection_error();
}
inline void ConnectionsLog_ErrorCode::set_has_stop_listening_incoming_connection_error() {
  _oneof_case_[0] = kStopListeningIncomingConnectionError;
}
inline void ConnectionsLog_ErrorCode::clear_stop_listening_incoming_connection_error() {
  if (_internal_has_stop_listening_incoming_connection_error()) {
    ErrorCodeDetail_.stop_listening_incoming_connection_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError ConnectionsLog_ErrorCode::_internal_stop_listening_incoming_connection_error() const {
  if (_internal_has_stop_listening_incoming_connection_error()) {
    return static_cast< ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError >(ErrorCodeDetail_.stop_listening_incoming_connection_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError >(31);
}
inline ::location::nearby::errorcode::proto::StopListeningIncomingConnectionError ConnectionsLog_ErrorCode::stop_listening_incoming_connection_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_listening_incoming_connection_error)
  return _internal_stop_listening_incoming_connection_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_stop_listening_incoming_connection_error(::location::nearby::errorcode::proto::StopListeningIncomingConnectionError value) {
  assert(::location::nearby::errorcode::proto::StopListeningIncomingConnectionError_IsValid(value));
  if (!_internal_has_stop_listening_incoming_connection_error()) {
    clear_ErrorCodeDetail();
    set_has_stop_listening_incoming_connection_error();
  }
  ErrorCodeDetail_.stop_listening_incoming_connection_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_stop_listening_incoming_connection_error(::location::nearby::errorcode::proto::StopListeningIncomingConnectionError value) {
  _internal_set_stop_listening_incoming_connection_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.stop_listening_incoming_connection_error)
}

// .location.nearby.errorcode.proto.ConnectError connect_error = 14;
inline bool ConnectionsLog_ErrorCode::_internal_has_connect_error() const {
  return ErrorCodeDetail_case() == kConnectError;
}
inline bool ConnectionsLog_ErrorCode::has_connect_error() const {
  return _internal_has_connect_error();
}
inline void ConnectionsLog_ErrorCode::set_has_connect_error() {
  _oneof_case_[0] = kConnectError;
}
inline void ConnectionsLog_ErrorCode::clear_connect_error() {
  if (_internal_has_connect_error()) {
    ErrorCodeDetail_.connect_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::ConnectError ConnectionsLog_ErrorCode::_internal_connect_error() const {
  if (_internal_has_connect_error()) {
    return static_cast< ::location::nearby::errorcode::proto::ConnectError >(ErrorCodeDetail_.connect_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::ConnectError >(31);
}
inline ::location::nearby::errorcode::proto::ConnectError ConnectionsLog_ErrorCode::connect_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connect_error)
  return _internal_connect_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_connect_error(::location::nearby::errorcode::proto::ConnectError value) {
  assert(::location::nearby::errorcode::proto::ConnectError_IsValid(value));
  if (!_internal_has_connect_error()) {
    clear_ErrorCodeDetail();
    set_has_connect_error();
  }
  ErrorCodeDetail_.connect_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_connect_error(::location::nearby::errorcode::proto::ConnectError value) {
  _internal_set_connect_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connect_error)
}

// .location.nearby.errorcode.proto.DisconnectError disconnect_error = 15;
inline bool ConnectionsLog_ErrorCode::_internal_has_disconnect_error() const {
  return ErrorCodeDetail_case() == kDisconnectError;
}
inline bool ConnectionsLog_ErrorCode::has_disconnect_error() const {
  return _internal_has_disconnect_error();
}
inline void ConnectionsLog_ErrorCode::set_has_disconnect_error() {
  _oneof_case_[0] = kDisconnectError;
}
inline void ConnectionsLog_ErrorCode::clear_disconnect_error() {
  if (_internal_has_disconnect_error()) {
    ErrorCodeDetail_.disconnect_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::DisconnectError ConnectionsLog_ErrorCode::_internal_disconnect_error() const {
  if (_internal_has_disconnect_error()) {
    return static_cast< ::location::nearby::errorcode::proto::DisconnectError >(ErrorCodeDetail_.disconnect_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::DisconnectError >(31);
}
inline ::location::nearby::errorcode::proto::DisconnectError ConnectionsLog_ErrorCode::disconnect_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.disconnect_error)
  return _internal_disconnect_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_disconnect_error(::location::nearby::errorcode::proto::DisconnectError value) {
  assert(::location::nearby::errorcode::proto::DisconnectError_IsValid(value));
  if (!_internal_has_disconnect_error()) {
    clear_ErrorCodeDetail();
    set_has_disconnect_error();
  }
  ErrorCodeDetail_.disconnect_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_disconnect_error(::location::nearby::errorcode::proto::DisconnectError value) {
  _internal_set_disconnect_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.disconnect_error)
}

// .location.nearby.errorcode.proto.SendPayloadError send_payload_error = 17;
inline bool ConnectionsLog_ErrorCode::_internal_has_send_payload_error() const {
  return ErrorCodeDetail_case() == kSendPayloadError;
}
inline bool ConnectionsLog_ErrorCode::has_send_payload_error() const {
  return _internal_has_send_payload_error();
}
inline void ConnectionsLog_ErrorCode::set_has_send_payload_error() {
  _oneof_case_[0] = kSendPayloadError;
}
inline void ConnectionsLog_ErrorCode::clear_send_payload_error() {
  if (_internal_has_send_payload_error()) {
    ErrorCodeDetail_.send_payload_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::SendPayloadError ConnectionsLog_ErrorCode::_internal_send_payload_error() const {
  if (_internal_has_send_payload_error()) {
    return static_cast< ::location::nearby::errorcode::proto::SendPayloadError >(ErrorCodeDetail_.send_payload_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::SendPayloadError >(31);
}
inline ::location::nearby::errorcode::proto::SendPayloadError ConnectionsLog_ErrorCode::send_payload_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.send_payload_error)
  return _internal_send_payload_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_send_payload_error(::location::nearby::errorcode::proto::SendPayloadError value) {
  assert(::location::nearby::errorcode::proto::SendPayloadError_IsValid(value));
  if (!_internal_has_send_payload_error()) {
    clear_ErrorCodeDetail();
    set_has_send_payload_error();
  }
  ErrorCodeDetail_.send_payload_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_send_payload_error(::location::nearby::errorcode::proto::SendPayloadError value) {
  _internal_set_send_payload_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.send_payload_error)
}

// .location.nearby.errorcode.proto.ReceivePayloadError receive_payload_error = 18;
inline bool ConnectionsLog_ErrorCode::_internal_has_receive_payload_error() const {
  return ErrorCodeDetail_case() == kReceivePayloadError;
}
inline bool ConnectionsLog_ErrorCode::has_receive_payload_error() const {
  return _internal_has_receive_payload_error();
}
inline void ConnectionsLog_ErrorCode::set_has_receive_payload_error() {
  _oneof_case_[0] = kReceivePayloadError;
}
inline void ConnectionsLog_ErrorCode::clear_receive_payload_error() {
  if (_internal_has_receive_payload_error()) {
    ErrorCodeDetail_.receive_payload_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::ReceivePayloadError ConnectionsLog_ErrorCode::_internal_receive_payload_error() const {
  if (_internal_has_receive_payload_error()) {
    return static_cast< ::location::nearby::errorcode::proto::ReceivePayloadError >(ErrorCodeDetail_.receive_payload_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::ReceivePayloadError >(31);
}
inline ::location::nearby::errorcode::proto::ReceivePayloadError ConnectionsLog_ErrorCode::receive_payload_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.receive_payload_error)
  return _internal_receive_payload_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_receive_payload_error(::location::nearby::errorcode::proto::ReceivePayloadError value) {
  assert(::location::nearby::errorcode::proto::ReceivePayloadError_IsValid(value));
  if (!_internal_has_receive_payload_error()) {
    clear_ErrorCodeDetail();
    set_has_receive_payload_error();
  }
  ErrorCodeDetail_.receive_payload_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_receive_payload_error(::location::nearby::errorcode::proto::ReceivePayloadError value) {
  _internal_set_receive_payload_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.receive_payload_error)
}

// .location.nearby.errorcode.proto.UpgradeError upgrade_error = 19;
inline bool ConnectionsLog_ErrorCode::_internal_has_upgrade_error() const {
  return ErrorCodeDetail_case() == kUpgradeError;
}
inline bool ConnectionsLog_ErrorCode::has_upgrade_error() const {
  return _internal_has_upgrade_error();
}
inline void ConnectionsLog_ErrorCode::set_has_upgrade_error() {
  _oneof_case_[0] = kUpgradeError;
}
inline void ConnectionsLog_ErrorCode::clear_upgrade_error() {
  if (_internal_has_upgrade_error()) {
    ErrorCodeDetail_.upgrade_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::UpgradeError ConnectionsLog_ErrorCode::_internal_upgrade_error() const {
  if (_internal_has_upgrade_error()) {
    return static_cast< ::location::nearby::errorcode::proto::UpgradeError >(ErrorCodeDetail_.upgrade_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::UpgradeError >(31);
}
inline ::location::nearby::errorcode::proto::UpgradeError ConnectionsLog_ErrorCode::upgrade_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.upgrade_error)
  return _internal_upgrade_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_upgrade_error(::location::nearby::errorcode::proto::UpgradeError value) {
  assert(::location::nearby::errorcode::proto::UpgradeError_IsValid(value));
  if (!_internal_has_upgrade_error()) {
    clear_ErrorCodeDetail();
    set_has_upgrade_error();
  }
  ErrorCodeDetail_.upgrade_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_upgrade_error(::location::nearby::errorcode::proto::UpgradeError value) {
  _internal_set_upgrade_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.upgrade_error)
}

// .location.nearby.errorcode.proto.AcceptConnectionError accept_connection_error = 20;
inline bool ConnectionsLog_ErrorCode::_internal_has_accept_connection_error() const {
  return ErrorCodeDetail_case() == kAcceptConnectionError;
}
inline bool ConnectionsLog_ErrorCode::has_accept_connection_error() const {
  return _internal_has_accept_connection_error();
}
inline void ConnectionsLog_ErrorCode::set_has_accept_connection_error() {
  _oneof_case_[0] = kAcceptConnectionError;
}
inline void ConnectionsLog_ErrorCode::clear_accept_connection_error() {
  if (_internal_has_accept_connection_error()) {
    ErrorCodeDetail_.accept_connection_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::AcceptConnectionError ConnectionsLog_ErrorCode::_internal_accept_connection_error() const {
  if (_internal_has_accept_connection_error()) {
    return static_cast< ::location::nearby::errorcode::proto::AcceptConnectionError >(ErrorCodeDetail_.accept_connection_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::AcceptConnectionError >(31);
}
inline ::location::nearby::errorcode::proto::AcceptConnectionError ConnectionsLog_ErrorCode::accept_connection_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.accept_connection_error)
  return _internal_accept_connection_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_accept_connection_error(::location::nearby::errorcode::proto::AcceptConnectionError value) {
  assert(::location::nearby::errorcode::proto::AcceptConnectionError_IsValid(value));
  if (!_internal_has_accept_connection_error()) {
    clear_ErrorCodeDetail();
    set_has_accept_connection_error();
  }
  ErrorCodeDetail_.accept_connection_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_accept_connection_error(::location::nearby::errorcode::proto::AcceptConnectionError value) {
  _internal_set_accept_connection_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.accept_connection_error)
}

// .location.nearby.errorcode.proto.RejectConnectionError reject_connection_error = 21;
inline bool ConnectionsLog_ErrorCode::_internal_has_reject_connection_error() const {
  return ErrorCodeDetail_case() == kRejectConnectionError;
}
inline bool ConnectionsLog_ErrorCode::has_reject_connection_error() const {
  return _internal_has_reject_connection_error();
}
inline void ConnectionsLog_ErrorCode::set_has_reject_connection_error() {
  _oneof_case_[0] = kRejectConnectionError;
}
inline void ConnectionsLog_ErrorCode::clear_reject_connection_error() {
  if (_internal_has_reject_connection_error()) {
    ErrorCodeDetail_.reject_connection_error_ = 31;
    clear_has_ErrorCodeDetail();
  }
}
inline ::location::nearby::errorcode::proto::RejectConnectionError ConnectionsLog_ErrorCode::_internal_reject_connection_error() const {
  if (_internal_has_reject_connection_error()) {
    return static_cast< ::location::nearby::errorcode::proto::RejectConnectionError >(ErrorCodeDetail_.reject_connection_error_);
  }
  return static_cast< ::location::nearby::errorcode::proto::RejectConnectionError >(31);
}
inline ::location::nearby::errorcode::proto::RejectConnectionError ConnectionsLog_ErrorCode::reject_connection_error() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.reject_connection_error)
  return _internal_reject_connection_error();
}
inline void ConnectionsLog_ErrorCode::_internal_set_reject_connection_error(::location::nearby::errorcode::proto::RejectConnectionError value) {
  assert(::location::nearby::errorcode::proto::RejectConnectionError_IsValid(value));
  if (!_internal_has_reject_connection_error()) {
    clear_ErrorCodeDetail();
    set_has_reject_connection_error();
  }
  ErrorCodeDetail_.reject_connection_error_ = value;
}
inline void ConnectionsLog_ErrorCode::set_reject_connection_error(::location::nearby::errorcode::proto::RejectConnectionError value) {
  _internal_set_reject_connection_error(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.reject_connection_error)
}

// optional string connection_token = 16;
inline bool ConnectionsLog_ErrorCode::_internal_has_connection_token() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_ErrorCode::has_connection_token() const {
  return _internal_has_connection_token();
}
inline void ConnectionsLog_ErrorCode::clear_connection_token() {
  connection_token_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& ConnectionsLog_ErrorCode::connection_token() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connection_token)
  return _internal_connection_token();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ErrorCode::set_connection_token(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000002u;
 connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connection_token)
}
inline std::string* ConnectionsLog_ErrorCode::mutable_connection_token() {
  std::string* _s = _internal_mutable_connection_token();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connection_token)
  return _s;
}
inline const std::string& ConnectionsLog_ErrorCode::_internal_connection_token() const {
  return connection_token_.Get();
}
inline void ConnectionsLog_ErrorCode::_internal_set_connection_token(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  connection_token_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ErrorCode::_internal_mutable_connection_token() {
  _has_bits_[0] |= 0x00000002u;
  return connection_token_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ErrorCode::release_connection_token() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connection_token)
  if (!_internal_has_connection_token()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  auto* p = connection_token_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ErrorCode::set_allocated_connection_token(std::string* connection_token) {
  if (connection_token != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  connection_token_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), connection_token,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (connection_token_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    connection_token_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ErrorCode.connection_token)
}

inline bool ConnectionsLog_ErrorCode::has_ErrorCodeDetail() const {
  return ErrorCodeDetail_case() != ERRORCODEDETAIL_NOT_SET;
}
inline void ConnectionsLog_ErrorCode::clear_has_ErrorCodeDetail() {
  _oneof_case_[0] = ERRORCODEDETAIL_NOT_SET;
}
inline ConnectionsLog_ErrorCode::ErrorCodeDetailCase ConnectionsLog_ErrorCode::ErrorCodeDetail_case() const {
  return ConnectionsLog_ErrorCode::ErrorCodeDetailCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ConnectionsLog_AdvertisingMetadata

// optional bool supports_extended_ble_advertisements = 1;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_supports_extended_ble_advertisements() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_supports_extended_ble_advertisements() const {
  return _internal_has_supports_extended_ble_advertisements();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_supports_extended_ble_advertisements() {
  supports_extended_ble_advertisements_ = false;
  _has_bits_[0] &= ~0x00000002u;
}
inline bool ConnectionsLog_AdvertisingMetadata::_internal_supports_extended_ble_advertisements() const {
  return supports_extended_ble_advertisements_;
}
inline bool ConnectionsLog_AdvertisingMetadata::supports_extended_ble_advertisements() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_extended_ble_advertisements)
  return _internal_supports_extended_ble_advertisements();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_supports_extended_ble_advertisements(bool value) {
  _has_bits_[0] |= 0x00000002u;
  supports_extended_ble_advertisements_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_supports_extended_ble_advertisements(bool value) {
  _internal_set_supports_extended_ble_advertisements(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_extended_ble_advertisements)
}

// optional int32 connected_ap_frequency = 2;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_connected_ap_frequency() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_connected_ap_frequency() const {
  return _internal_has_connected_ap_frequency();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_connected_ap_frequency() {
  connected_ap_frequency_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline int32_t ConnectionsLog_AdvertisingMetadata::_internal_connected_ap_frequency() const {
  return connected_ap_frequency_;
}
inline int32_t ConnectionsLog_AdvertisingMetadata::connected_ap_frequency() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.connected_ap_frequency)
  return _internal_connected_ap_frequency();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_connected_ap_frequency(int32_t value) {
  _has_bits_[0] |= 0x00000001u;
  connected_ap_frequency_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_connected_ap_frequency(int32_t value) {
  _internal_set_connected_ap_frequency(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.connected_ap_frequency)
}

// optional bool supports_nfc_technology = 3;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_supports_nfc_technology() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_supports_nfc_technology() const {
  return _internal_has_supports_nfc_technology();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_supports_nfc_technology() {
  supports_nfc_technology_ = false;
  _has_bits_[0] &= ~0x00000004u;
}
inline bool ConnectionsLog_AdvertisingMetadata::_internal_supports_nfc_technology() const {
  return supports_nfc_technology_;
}
inline bool ConnectionsLog_AdvertisingMetadata::supports_nfc_technology() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_nfc_technology)
  return _internal_supports_nfc_technology();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_supports_nfc_technology(bool value) {
  _has_bits_[0] |= 0x00000004u;
  supports_nfc_technology_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_supports_nfc_technology(bool value) {
  _internal_set_supports_nfc_technology(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_nfc_technology)
}

// optional bool multiple_advertisement_supported = 4;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_multiple_advertisement_supported() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_multiple_advertisement_supported() const {
  return _internal_has_multiple_advertisement_supported();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_multiple_advertisement_supported() {
  multiple_advertisement_supported_ = false;
  _has_bits_[0] &= ~0x00000008u;
}
inline bool ConnectionsLog_AdvertisingMetadata::_internal_multiple_advertisement_supported() const {
  return multiple_advertisement_supported_;
}
inline bool ConnectionsLog_AdvertisingMetadata::multiple_advertisement_supported() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.multiple_advertisement_supported)
  return _internal_multiple_advertisement_supported();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_multiple_advertisement_supported(bool value) {
  _has_bits_[0] |= 0x00000008u;
  multiple_advertisement_supported_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_multiple_advertisement_supported(bool value) {
  _internal_set_multiple_advertisement_supported(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.multiple_advertisement_supported)
}

// optional .location.nearby.proto.connections.PowerLevel power_level = 5;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_power_level() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_power_level() const {
  return _internal_has_power_level();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_power_level() {
  power_level_ = -1;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::PowerLevel ConnectionsLog_AdvertisingMetadata::_internal_power_level() const {
  return static_cast< ::location::nearby::proto::connections::PowerLevel >(power_level_);
}
inline ::location::nearby::proto::connections::PowerLevel ConnectionsLog_AdvertisingMetadata::power_level() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.power_level)
  return _internal_power_level();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_power_level(::location::nearby::proto::connections::PowerLevel value) {
  assert(::location::nearby::proto::connections::PowerLevel_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  power_level_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_power_level(::location::nearby::proto::connections::PowerLevel value) {
  _internal_set_power_level(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.power_level)
}

// optional bool supports_dual_band = 6;
inline bool ConnectionsLog_AdvertisingMetadata::_internal_has_supports_dual_band() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_AdvertisingMetadata::has_supports_dual_band() const {
  return _internal_has_supports_dual_band();
}
inline void ConnectionsLog_AdvertisingMetadata::clear_supports_dual_band() {
  supports_dual_band_ = false;
  _has_bits_[0] &= ~0x00000010u;
}
inline bool ConnectionsLog_AdvertisingMetadata::_internal_supports_dual_band() const {
  return supports_dual_band_;
}
inline bool ConnectionsLog_AdvertisingMetadata::supports_dual_band() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_dual_band)
  return _internal_supports_dual_band();
}
inline void ConnectionsLog_AdvertisingMetadata::_internal_set_supports_dual_band(bool value) {
  _has_bits_[0] |= 0x00000010u;
  supports_dual_band_ = value;
}
inline void ConnectionsLog_AdvertisingMetadata::set_supports_dual_band(bool value) {
  _internal_set_supports_dual_band(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.AdvertisingMetadata.supports_dual_band)
}

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

// ConnectionsLog_DiscoveryMetadata

// optional bool supports_extended_ble_advertisements = 1;
inline bool ConnectionsLog_DiscoveryMetadata::_internal_has_supports_extended_ble_advertisements() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryMetadata::has_supports_extended_ble_advertisements() const {
  return _internal_has_supports_extended_ble_advertisements();
}
inline void ConnectionsLog_DiscoveryMetadata::clear_supports_extended_ble_advertisements() {
  supports_extended_ble_advertisements_ = false;
  _has_bits_[0] &= ~0x00000002u;
}
inline bool ConnectionsLog_DiscoveryMetadata::_internal_supports_extended_ble_advertisements() const {
  return supports_extended_ble_advertisements_;
}
inline bool ConnectionsLog_DiscoveryMetadata::supports_extended_ble_advertisements() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.supports_extended_ble_advertisements)
  return _internal_supports_extended_ble_advertisements();
}
inline void ConnectionsLog_DiscoveryMetadata::_internal_set_supports_extended_ble_advertisements(bool value) {
  _has_bits_[0] |= 0x00000002u;
  supports_extended_ble_advertisements_ = value;
}
inline void ConnectionsLog_DiscoveryMetadata::set_supports_extended_ble_advertisements(bool value) {
  _internal_set_supports_extended_ble_advertisements(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.supports_extended_ble_advertisements)
}

// optional int32 connected_ap_frequency = 2;
inline bool ConnectionsLog_DiscoveryMetadata::_internal_has_connected_ap_frequency() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryMetadata::has_connected_ap_frequency() const {
  return _internal_has_connected_ap_frequency();
}
inline void ConnectionsLog_DiscoveryMetadata::clear_connected_ap_frequency() {
  connected_ap_frequency_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline int32_t ConnectionsLog_DiscoveryMetadata::_internal_connected_ap_frequency() const {
  return connected_ap_frequency_;
}
inline int32_t ConnectionsLog_DiscoveryMetadata::connected_ap_frequency() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.connected_ap_frequency)
  return _internal_connected_ap_frequency();
}
inline void ConnectionsLog_DiscoveryMetadata::_internal_set_connected_ap_frequency(int32_t value) {
  _has_bits_[0] |= 0x00000001u;
  connected_ap_frequency_ = value;
}
inline void ConnectionsLog_DiscoveryMetadata::set_connected_ap_frequency(int32_t value) {
  _internal_set_connected_ap_frequency(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.connected_ap_frequency)
}

// optional bool supports_nfc_technology = 3;
inline bool ConnectionsLog_DiscoveryMetadata::_internal_has_supports_nfc_technology() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryMetadata::has_supports_nfc_technology() const {
  return _internal_has_supports_nfc_technology();
}
inline void ConnectionsLog_DiscoveryMetadata::clear_supports_nfc_technology() {
  supports_nfc_technology_ = false;
  _has_bits_[0] &= ~0x00000004u;
}
inline bool ConnectionsLog_DiscoveryMetadata::_internal_supports_nfc_technology() const {
  return supports_nfc_technology_;
}
inline bool ConnectionsLog_DiscoveryMetadata::supports_nfc_technology() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.supports_nfc_technology)
  return _internal_supports_nfc_technology();
}
inline void ConnectionsLog_DiscoveryMetadata::_internal_set_supports_nfc_technology(bool value) {
  _has_bits_[0] |= 0x00000004u;
  supports_nfc_technology_ = value;
}
inline void ConnectionsLog_DiscoveryMetadata::set_supports_nfc_technology(bool value) {
  _internal_set_supports_nfc_technology(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.supports_nfc_technology)
}

// optional .location.nearby.proto.connections.PowerLevel power_level = 4;
inline bool ConnectionsLog_DiscoveryMetadata::_internal_has_power_level() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_DiscoveryMetadata::has_power_level() const {
  return _internal_has_power_level();
}
inline void ConnectionsLog_DiscoveryMetadata::clear_power_level() {
  power_level_ = -1;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::PowerLevel ConnectionsLog_DiscoveryMetadata::_internal_power_level() const {
  return static_cast< ::location::nearby::proto::connections::PowerLevel >(power_level_);
}
inline ::location::nearby::proto::connections::PowerLevel ConnectionsLog_DiscoveryMetadata::power_level() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.power_level)
  return _internal_power_level();
}
inline void ConnectionsLog_DiscoveryMetadata::_internal_set_power_level(::location::nearby::proto::connections::PowerLevel value) {
  assert(::location::nearby::proto::connections::PowerLevel_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  power_level_ = value;
}
inline void ConnectionsLog_DiscoveryMetadata::set_power_level(::location::nearby::proto::connections::PowerLevel value) {
  _internal_set_power_level(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.DiscoveryMetadata.power_level)
}

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

// ConnectionsLog_ConnectionAttemptMetadata

// optional .location.nearby.proto.connections.ConnectionTechnology technology = 1;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_technology() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_technology() const {
  return _internal_has_technology();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_technology() {
  technology_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline ::location::nearby::proto::connections::ConnectionTechnology ConnectionsLog_ConnectionAttemptMetadata::_internal_technology() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionTechnology >(technology_);
}
inline ::location::nearby::proto::connections::ConnectionTechnology ConnectionsLog_ConnectionAttemptMetadata::technology() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.technology)
  return _internal_technology();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_technology(::location::nearby::proto::connections::ConnectionTechnology value) {
  assert(::location::nearby::proto::connections::ConnectionTechnology_IsValid(value));
  _has_bits_[0] |= 0x00000004u;
  technology_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_technology(::location::nearby::proto::connections::ConnectionTechnology value) {
  _internal_set_technology(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.technology)
}

// optional .location.nearby.proto.connections.ConnectionBand band = 2;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_band() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_band() const {
  return _internal_has_band();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_band() {
  band_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::location::nearby::proto::connections::ConnectionBand ConnectionsLog_ConnectionAttemptMetadata::_internal_band() const {
  return static_cast< ::location::nearby::proto::connections::ConnectionBand >(band_);
}
inline ::location::nearby::proto::connections::ConnectionBand ConnectionsLog_ConnectionAttemptMetadata::band() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.band)
  return _internal_band();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_band(::location::nearby::proto::connections::ConnectionBand value) {
  assert(::location::nearby::proto::connections::ConnectionBand_IsValid(value));
  _has_bits_[0] |= 0x00000008u;
  band_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_band(::location::nearby::proto::connections::ConnectionBand value) {
  _internal_set_band(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.band)
}

// optional int32 frequency = 3;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_frequency() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_frequency() const {
  return _internal_has_frequency();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_frequency() {
  frequency_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_frequency() const {
  return frequency_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::frequency() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.frequency)
  return _internal_frequency();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_frequency(int32_t value) {
  _has_bits_[0] |= 0x00000010u;
  frequency_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_frequency(int32_t value) {
  _internal_set_frequency(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.frequency)
}

// optional string network_operator = 4;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_network_operator() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_network_operator() const {
  return _internal_has_network_operator();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_network_operator() {
  network_operator_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog_ConnectionAttemptMetadata::network_operator() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.network_operator)
  return _internal_network_operator();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ConnectionAttemptMetadata::set_network_operator(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 network_operator_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.network_operator)
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::mutable_network_operator() {
  std::string* _s = _internal_mutable_network_operator();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.network_operator)
  return _s;
}
inline const std::string& ConnectionsLog_ConnectionAttemptMetadata::_internal_network_operator() const {
  return network_operator_.Get();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_network_operator(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  network_operator_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::_internal_mutable_network_operator() {
  _has_bits_[0] |= 0x00000001u;
  return network_operator_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::release_network_operator() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.network_operator)
  if (!_internal_has_network_operator()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = network_operator_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (network_operator_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    network_operator_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_allocated_network_operator(std::string* network_operator) {
  if (network_operator != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  network_operator_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), network_operator,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (network_operator_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    network_operator_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.network_operator)
}

// optional string country_code = 5;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_country_code() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_country_code() const {
  return _internal_has_country_code();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_country_code() {
  country_code_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& ConnectionsLog_ConnectionAttemptMetadata::country_code() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.country_code)
  return _internal_country_code();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog_ConnectionAttemptMetadata::set_country_code(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000002u;
 country_code_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.country_code)
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::mutable_country_code() {
  std::string* _s = _internal_mutable_country_code();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.country_code)
  return _s;
}
inline const std::string& ConnectionsLog_ConnectionAttemptMetadata::_internal_country_code() const {
  return country_code_.Get();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_country_code(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  country_code_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::_internal_mutable_country_code() {
  _has_bits_[0] |= 0x00000002u;
  return country_code_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog_ConnectionAttemptMetadata::release_country_code() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.country_code)
  if (!_internal_has_country_code()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  auto* p = country_code_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (country_code_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    country_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_allocated_country_code(std::string* country_code) {
  if (country_code != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  country_code_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), country_code,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (country_code_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    country_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.country_code)
}

// optional bool is_tdls_used = 6;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_is_tdls_used() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_is_tdls_used() const {
  return _internal_has_is_tdls_used();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_is_tdls_used() {
  is_tdls_used_ = false;
  _has_bits_[0] &= ~0x00000080u;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_is_tdls_used() const {
  return is_tdls_used_;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::is_tdls_used() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.is_tdls_used)
  return _internal_is_tdls_used();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_is_tdls_used(bool value) {
  _has_bits_[0] |= 0x00000080u;
  is_tdls_used_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_is_tdls_used(bool value) {
  _internal_set_is_tdls_used(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.is_tdls_used)
}

// optional int32 try_counts = 7;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_try_counts() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_try_counts() const {
  return _internal_has_try_counts();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_try_counts() {
  try_counts_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_try_counts() const {
  return try_counts_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::try_counts() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.try_counts)
  return _internal_try_counts();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_try_counts(int32_t value) {
  _has_bits_[0] |= 0x00000020u;
  try_counts_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_try_counts(int32_t value) {
  _internal_set_try_counts(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.try_counts)
}

// optional bool wifi_hotspot_status = 8;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_wifi_hotspot_status() const {
  bool value = (_has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_wifi_hotspot_status() const {
  return _internal_has_wifi_hotspot_status();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_wifi_hotspot_status() {
  wifi_hotspot_status_ = false;
  _has_bits_[0] &= ~0x00000100u;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_wifi_hotspot_status() const {
  return wifi_hotspot_status_;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::wifi_hotspot_status() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.wifi_hotspot_status)
  return _internal_wifi_hotspot_status();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_wifi_hotspot_status(bool value) {
  _has_bits_[0] |= 0x00000100u;
  wifi_hotspot_status_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_wifi_hotspot_status(bool value) {
  _internal_set_wifi_hotspot_status(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.wifi_hotspot_status)
}

// optional int32 max_tx_speed = 9;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_max_tx_speed() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_max_tx_speed() const {
  return _internal_has_max_tx_speed();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_max_tx_speed() {
  max_tx_speed_ = 0;
  _has_bits_[0] &= ~0x00000040u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_max_tx_speed() const {
  return max_tx_speed_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::max_tx_speed() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.max_tx_speed)
  return _internal_max_tx_speed();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_max_tx_speed(int32_t value) {
  _has_bits_[0] |= 0x00000040u;
  max_tx_speed_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_max_tx_speed(int32_t value) {
  _internal_set_max_tx_speed(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.max_tx_speed)
}

// optional int32 max_rx_speed = 10;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_max_rx_speed() const {
  bool value = (_has_bits_[0] & 0x00000400u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_max_rx_speed() const {
  return _internal_has_max_rx_speed();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_max_rx_speed() {
  max_rx_speed_ = 0;
  _has_bits_[0] &= ~0x00000400u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_max_rx_speed() const {
  return max_rx_speed_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::max_rx_speed() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.max_rx_speed)
  return _internal_max_rx_speed();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_max_rx_speed(int32_t value) {
  _has_bits_[0] |= 0x00000400u;
  max_rx_speed_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_max_rx_speed(int32_t value) {
  _internal_set_max_rx_speed(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.max_rx_speed)
}

// optional int32 wifi_channel_width = 11;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_wifi_channel_width() const {
  bool value = (_has_bits_[0] & 0x00000800u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_wifi_channel_width() const {
  return _internal_has_wifi_channel_width();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_wifi_channel_width() {
  wifi_channel_width_ = 0;
  _has_bits_[0] &= ~0x00000800u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_wifi_channel_width() const {
  return wifi_channel_width_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::wifi_channel_width() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.wifi_channel_width)
  return _internal_wifi_channel_width();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_wifi_channel_width(int32_t value) {
  _has_bits_[0] |= 0x00000800u;
  wifi_channel_width_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_wifi_channel_width(int32_t value) {
  _internal_set_wifi_channel_width(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.wifi_channel_width)
}

// optional int32 send_buffer_size = 12;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_send_buffer_size() const {
  bool value = (_has_bits_[0] & 0x00001000u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_send_buffer_size() const {
  return _internal_has_send_buffer_size();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_send_buffer_size() {
  send_buffer_size_ = 0;
  _has_bits_[0] &= ~0x00001000u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_send_buffer_size() const {
  return send_buffer_size_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::send_buffer_size() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.send_buffer_size)
  return _internal_send_buffer_size();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_send_buffer_size(int32_t value) {
  _has_bits_[0] |= 0x00001000u;
  send_buffer_size_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_send_buffer_size(int32_t value) {
  _internal_set_send_buffer_size(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.send_buffer_size)
}

// optional int32 receive_buffer_size = 13;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_receive_buffer_size() const {
  bool value = (_has_bits_[0] & 0x00002000u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_receive_buffer_size() const {
  return _internal_has_receive_buffer_size();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_receive_buffer_size() {
  receive_buffer_size_ = 0;
  _has_bits_[0] &= ~0x00002000u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_receive_buffer_size() const {
  return receive_buffer_size_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::receive_buffer_size() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.receive_buffer_size)
  return _internal_receive_buffer_size();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_receive_buffer_size(int32_t value) {
  _has_bits_[0] |= 0x00002000u;
  receive_buffer_size_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_receive_buffer_size(int32_t value) {
  _internal_set_receive_buffer_size(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.receive_buffer_size)
}

// optional int32 connected_ap_frequency = 14;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_connected_ap_frequency() const {
  bool value = (_has_bits_[0] & 0x00004000u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_connected_ap_frequency() const {
  return _internal_has_connected_ap_frequency();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_connected_ap_frequency() {
  connected_ap_frequency_ = 0;
  _has_bits_[0] &= ~0x00004000u;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::_internal_connected_ap_frequency() const {
  return connected_ap_frequency_;
}
inline int32_t ConnectionsLog_ConnectionAttemptMetadata::connected_ap_frequency() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.connected_ap_frequency)
  return _internal_connected_ap_frequency();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_connected_ap_frequency(int32_t value) {
  _has_bits_[0] |= 0x00004000u;
  connected_ap_frequency_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_connected_ap_frequency(int32_t value) {
  _internal_set_connected_ap_frequency(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.connected_ap_frequency)
}

// optional bool is_mcc_mode = 15;
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_has_is_mcc_mode() const {
  bool value = (_has_bits_[0] & 0x00000200u) != 0;
  return value;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::has_is_mcc_mode() const {
  return _internal_has_is_mcc_mode();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::clear_is_mcc_mode() {
  is_mcc_mode_ = false;
  _has_bits_[0] &= ~0x00000200u;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::_internal_is_mcc_mode() const {
  return is_mcc_mode_;
}
inline bool ConnectionsLog_ConnectionAttemptMetadata::is_mcc_mode() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.is_mcc_mode)
  return _internal_is_mcc_mode();
}
inline void ConnectionsLog_ConnectionAttemptMetadata::_internal_set_is_mcc_mode(bool value) {
  _has_bits_[0] |= 0x00000200u;
  is_mcc_mode_ = value;
}
inline void ConnectionsLog_ConnectionAttemptMetadata::set_is_mcc_mode(bool value) {
  _internal_set_is_mcc_mode(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.ConnectionAttemptMetadata.is_mcc_mode)
}

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

// ConnectionsLog

// optional .location.nearby.proto.connections.EventType event_type = 1;
inline bool ConnectionsLog::_internal_has_event_type() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool ConnectionsLog::has_event_type() const {
  return _internal_has_event_type();
}
inline void ConnectionsLog::clear_event_type() {
  event_type_ = 0;
  _has_bits_[0] &= ~0x00000010u;
}
inline ::location::nearby::proto::connections::EventType ConnectionsLog::_internal_event_type() const {
  return static_cast< ::location::nearby::proto::connections::EventType >(event_type_);
}
inline ::location::nearby::proto::connections::EventType ConnectionsLog::event_type() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.event_type)
  return _internal_event_type();
}
inline void ConnectionsLog::_internal_set_event_type(::location::nearby::proto::connections::EventType value) {
  assert(::location::nearby::proto::connections::EventType_IsValid(value));
  _has_bits_[0] |= 0x00000010u;
  event_type_ = value;
}
inline void ConnectionsLog::set_event_type(::location::nearby::proto::connections::EventType value) {
  _internal_set_event_type(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.event_type)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.ClientSession client_session = 2;
inline bool ConnectionsLog::_internal_has_client_session() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || client_session_ != nullptr);
  return value;
}
inline bool ConnectionsLog::has_client_session() const {
  return _internal_has_client_session();
}
inline void ConnectionsLog::clear_client_session() {
  if (client_session_ != nullptr) client_session_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession& ConnectionsLog::_internal_client_session() const {
  const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* p = client_session_;
  return p != nullptr ? *p : reinterpret_cast<const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession&>(
      ::location::nearby::analytics::proto::_ConnectionsLog_ClientSession_default_instance_);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ClientSession& ConnectionsLog::client_session() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.client_session)
  return _internal_client_session();
}
inline void ConnectionsLog::unsafe_arena_set_allocated_client_session(
    ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* client_session) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(client_session_);
  }
  client_session_ = client_session;
  if (client_session) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:location.nearby.analytics.proto.ConnectionsLog.client_session)
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* ConnectionsLog::release_client_session() {
  _has_bits_[0] &= ~0x00000004u;
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* temp = client_session_;
  client_session_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* ConnectionsLog::unsafe_arena_release_client_session() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.client_session)
  _has_bits_[0] &= ~0x00000004u;
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* temp = client_session_;
  client_session_ = nullptr;
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* ConnectionsLog::_internal_mutable_client_session() {
  _has_bits_[0] |= 0x00000004u;
  if (client_session_ == nullptr) {
    auto* p = CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ClientSession>(GetArenaForAllocation());
    client_session_ = p;
  }
  return client_session_;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* ConnectionsLog::mutable_client_session() {
  ::location::nearby::analytics::proto::ConnectionsLog_ClientSession* _msg = _internal_mutable_client_session();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.client_session)
  return _msg;
}
inline void ConnectionsLog::set_allocated_client_session(::location::nearby::analytics::proto::ConnectionsLog_ClientSession* client_session) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete client_session_;
  }
  if (client_session) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::location::nearby::analytics::proto::ConnectionsLog_ClientSession>::GetOwningArena(client_session);
    if (message_arena != submessage_arena) {
      client_session = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, client_session, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  client_session_ = client_session;
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.client_session)
}

// optional string version = 3;
inline bool ConnectionsLog::_internal_has_version() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool ConnectionsLog::has_version() const {
  return _internal_has_version();
}
inline void ConnectionsLog::clear_version() {
  version_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& ConnectionsLog::version() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.version)
  return _internal_version();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog::set_version(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000001u;
 version_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.version)
}
inline std::string* ConnectionsLog::mutable_version() {
  std::string* _s = _internal_mutable_version();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.version)
  return _s;
}
inline const std::string& ConnectionsLog::_internal_version() const {
  return version_.Get();
}
inline void ConnectionsLog::_internal_set_version(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  version_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog::_internal_mutable_version() {
  _has_bits_[0] |= 0x00000001u;
  return version_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog::release_version() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.version)
  if (!_internal_has_version()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  auto* p = version_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (version_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog::set_allocated_version(std::string* version) {
  if (version != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  version_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), version,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (version_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    version_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.version)
}

// optional .location.nearby.analytics.proto.ConnectionsLog.ErrorCode error_code = 4;
inline bool ConnectionsLog::_internal_has_error_code() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  PROTOBUF_ASSUME(!value || error_code_ != nullptr);
  return value;
}
inline bool ConnectionsLog::has_error_code() const {
  return _internal_has_error_code();
}
inline void ConnectionsLog::clear_error_code() {
  if (error_code_ != nullptr) error_code_->Clear();
  _has_bits_[0] &= ~0x00000008u;
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode& ConnectionsLog::_internal_error_code() const {
  const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* p = error_code_;
  return p != nullptr ? *p : reinterpret_cast<const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode&>(
      ::location::nearby::analytics::proto::_ConnectionsLog_ErrorCode_default_instance_);
}
inline const ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode& ConnectionsLog::error_code() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.error_code)
  return _internal_error_code();
}
inline void ConnectionsLog::unsafe_arena_set_allocated_error_code(
    ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* error_code) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(error_code_);
  }
  error_code_ = error_code;
  if (error_code) {
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:location.nearby.analytics.proto.ConnectionsLog.error_code)
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* ConnectionsLog::release_error_code() {
  _has_bits_[0] &= ~0x00000008u;
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* temp = error_code_;
  error_code_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* ConnectionsLog::unsafe_arena_release_error_code() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.error_code)
  _has_bits_[0] &= ~0x00000008u;
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* temp = error_code_;
  error_code_ = nullptr;
  return temp;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* ConnectionsLog::_internal_mutable_error_code() {
  _has_bits_[0] |= 0x00000008u;
  if (error_code_ == nullptr) {
    auto* p = CreateMaybeMessage<::location::nearby::analytics::proto::ConnectionsLog_ErrorCode>(GetArenaForAllocation());
    error_code_ = p;
  }
  return error_code_;
}
inline ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* ConnectionsLog::mutable_error_code() {
  ::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* _msg = _internal_mutable_error_code();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.error_code)
  return _msg;
}
inline void ConnectionsLog::set_allocated_error_code(::location::nearby::analytics::proto::ConnectionsLog_ErrorCode* error_code) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete error_code_;
  }
  if (error_code) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::location::nearby::analytics::proto::ConnectionsLog_ErrorCode>::GetOwningArena(error_code);
    if (message_arena != submessage_arena) {
      error_code = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error_code, submessage_arena);
    }
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  error_code_ = error_code;
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.error_code)
}

// optional .location.nearby.proto.connections.LogSource log_source = 5;
inline bool ConnectionsLog::_internal_has_log_source() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool ConnectionsLog::has_log_source() const {
  return _internal_has_log_source();
}
inline void ConnectionsLog::clear_log_source() {
  log_source_ = 0;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::location::nearby::proto::connections::LogSource ConnectionsLog::_internal_log_source() const {
  return static_cast< ::location::nearby::proto::connections::LogSource >(log_source_);
}
inline ::location::nearby::proto::connections::LogSource ConnectionsLog::log_source() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.log_source)
  return _internal_log_source();
}
inline void ConnectionsLog::_internal_set_log_source(::location::nearby::proto::connections::LogSource value) {
  assert(::location::nearby::proto::connections::LogSource_IsValid(value));
  _has_bits_[0] |= 0x00000020u;
  log_source_ = value;
}
inline void ConnectionsLog::set_log_source(::location::nearby::proto::connections::LogSource value) {
  _internal_set_log_source(value);
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.log_source)
}

// optional string files_migration_phase = 6;
inline bool ConnectionsLog::_internal_has_files_migration_phase() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool ConnectionsLog::has_files_migration_phase() const {
  return _internal_has_files_migration_phase();
}
inline void ConnectionsLog::clear_files_migration_phase() {
  files_migration_phase_.ClearToEmpty();
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& ConnectionsLog::files_migration_phase() const {
  // @@protoc_insertion_point(field_get:location.nearby.analytics.proto.ConnectionsLog.files_migration_phase)
  return _internal_files_migration_phase();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ConnectionsLog::set_files_migration_phase(ArgT0&& arg0, ArgT... args) {
 _has_bits_[0] |= 0x00000002u;
 files_migration_phase_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:location.nearby.analytics.proto.ConnectionsLog.files_migration_phase)
}
inline std::string* ConnectionsLog::mutable_files_migration_phase() {
  std::string* _s = _internal_mutable_files_migration_phase();
  // @@protoc_insertion_point(field_mutable:location.nearby.analytics.proto.ConnectionsLog.files_migration_phase)
  return _s;
}
inline const std::string& ConnectionsLog::_internal_files_migration_phase() const {
  return files_migration_phase_.Get();
}
inline void ConnectionsLog::_internal_set_files_migration_phase(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  files_migration_phase_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
}
inline std::string* ConnectionsLog::_internal_mutable_files_migration_phase() {
  _has_bits_[0] |= 0x00000002u;
  return files_migration_phase_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
}
inline std::string* ConnectionsLog::release_files_migration_phase() {
  // @@protoc_insertion_point(field_release:location.nearby.analytics.proto.ConnectionsLog.files_migration_phase)
  if (!_internal_has_files_migration_phase()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  auto* p = files_migration_phase_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (files_migration_phase_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    files_migration_phase_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void ConnectionsLog::set_allocated_files_migration_phase(std::string* files_migration_phase) {
  if (files_migration_phase != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  files_migration_phase_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), files_migration_phase,
      GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (files_migration_phase_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) {
    files_migration_phase_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:location.nearby.analytics.proto.ConnectionsLog.files_migration_phase)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace proto
}  // namespace analytics
}  // namespace nearby
}  // namespace location

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::location::nearby::analytics::proto::ConnectionsLog_EstablishedConnection_SafeDisconnectionResult> : ::std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_internal_2fproto_2fanalytics_2fconnections_5flog_2eproto
