mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
Add ConnectionAttemptMetadata for ConnectionAttempt in AnalyticsRecorder.
PiperOrigin-RevId: 413682624
This commit is contained in:
committed by
Copybara-Service
parent
28ed3c75a4
commit
b48610144b
@@ -43,12 +43,14 @@ using ::location::nearby::proto::connections::CONNECTION_CLOSED;
|
||||
using ::location::nearby::proto::connections::ConnectionAttemptDirection;
|
||||
using ::location::nearby::proto::connections::ConnectionAttemptResult;
|
||||
using ::location::nearby::proto::connections::ConnectionAttemptType;
|
||||
using ::location::nearby::proto::connections::ConnectionBand;
|
||||
using ::location::nearby::proto::connections::ConnectionRequestResponse;
|
||||
using ::location::nearby::proto::connections::ConnectionsStrategy;
|
||||
using ::location::nearby::proto::connections::ConnectionTechnology;
|
||||
using ::location::nearby::proto::connections::DisconnectionReason;
|
||||
using ::location::nearby::proto::connections::DISCOVERER;
|
||||
using ::location::nearby::proto::connections::EventType;
|
||||
using ::location::nearby::proto::connections::ERROR_CODE;
|
||||
using ::location::nearby::proto::connections::EventType;
|
||||
using ::location::nearby::proto::connections::FILE;
|
||||
using ::location::nearby::proto::connections::IGNORED;
|
||||
using ::location::nearby::proto::connections::INCOMING;
|
||||
@@ -247,7 +249,8 @@ void AnalyticsRecorder::OnLocalEndpointRejected(
|
||||
|
||||
void AnalyticsRecorder::OnIncomingConnectionAttempt(
|
||||
ConnectionAttemptType type, Medium medium, ConnectionAttemptResult result,
|
||||
absl::Duration duration, const std::string &connection_token) {
|
||||
absl::Duration duration, const std::string &connection_token,
|
||||
ConnectionAttemptMetadataParams *connection_attempt_metadata_params) {
|
||||
MutexLock lock(&mutex_);
|
||||
if (!CanRecordAnalyticsLocked("OnIncomingConnectionAttempt")) {
|
||||
return;
|
||||
@@ -265,12 +268,44 @@ void AnalyticsRecorder::OnIncomingConnectionAttempt(
|
||||
connection_attempt->set_medium(medium);
|
||||
connection_attempt->set_attempt_result(result);
|
||||
connection_attempt->set_connection_token(connection_token);
|
||||
|
||||
ConnectionAttemptMetadataParams default_params = {};
|
||||
if (connection_attempt_metadata_params == nullptr) {
|
||||
connection_attempt_metadata_params = &default_params;
|
||||
}
|
||||
auto *connection_attempt_metadata =
|
||||
connection_attempt->mutable_connection_attempt_metadata();
|
||||
connection_attempt_metadata->set_technology(
|
||||
connection_attempt_metadata_params->technology);
|
||||
connection_attempt_metadata->set_band(
|
||||
connection_attempt_metadata_params->band);
|
||||
connection_attempt_metadata->set_frequency(
|
||||
connection_attempt_metadata_params->frequency);
|
||||
connection_attempt_metadata->set_network_operator(
|
||||
connection_attempt_metadata_params->network_operator);
|
||||
connection_attempt_metadata->set_country_code(
|
||||
connection_attempt_metadata_params->country_code);
|
||||
connection_attempt_metadata->set_frequency(
|
||||
connection_attempt_metadata_params->frequency);
|
||||
connection_attempt_metadata->set_is_tdls_used(
|
||||
connection_attempt_metadata_params->is_tdls_used);
|
||||
connection_attempt_metadata->set_wifi_hotspot_status(
|
||||
connection_attempt_metadata_params->wifi_hotspot_enabled);
|
||||
connection_attempt_metadata->set_try_counts(
|
||||
connection_attempt_metadata_params->try_count);
|
||||
connection_attempt_metadata->set_max_tx_speed(
|
||||
connection_attempt_metadata_params->max_wifi_tx_speed);
|
||||
connection_attempt_metadata->set_max_rx_speed(
|
||||
connection_attempt_metadata_params->max_wifi_rx_speed);
|
||||
connection_attempt_metadata->set_wifi_channel_width(
|
||||
connection_attempt_metadata_params->channel_width);
|
||||
}
|
||||
|
||||
void AnalyticsRecorder::OnOutgoingConnectionAttempt(
|
||||
const std::string &remote_endpoint_id, ConnectionAttemptType type,
|
||||
Medium medium, ConnectionAttemptResult result, absl::Duration duration,
|
||||
const std::string &connection_token) {
|
||||
const std::string &connection_token,
|
||||
ConnectionAttemptMetadataParams *connection_attempt_metadata_params) {
|
||||
MutexLock lock(&mutex_);
|
||||
if (!CanRecordAnalyticsLocked("OnOutgoingConnectionAttempt")) {
|
||||
return;
|
||||
@@ -288,6 +323,38 @@ void AnalyticsRecorder::OnOutgoingConnectionAttempt(
|
||||
connection_attempt->set_medium(medium);
|
||||
connection_attempt->set_attempt_result(result);
|
||||
connection_attempt->set_connection_token(connection_token);
|
||||
|
||||
ConnectionAttemptMetadataParams default_params = {};
|
||||
if (connection_attempt_metadata_params == nullptr) {
|
||||
connection_attempt_metadata_params = &default_params;
|
||||
}
|
||||
auto *connection_attempt_metadata =
|
||||
connection_attempt->mutable_connection_attempt_metadata();
|
||||
connection_attempt_metadata->set_technology(
|
||||
connection_attempt_metadata_params->technology);
|
||||
connection_attempt_metadata->set_band(
|
||||
connection_attempt_metadata_params->band);
|
||||
connection_attempt_metadata->set_frequency(
|
||||
connection_attempt_metadata_params->frequency);
|
||||
connection_attempt_metadata->set_network_operator(
|
||||
connection_attempt_metadata_params->network_operator);
|
||||
connection_attempt_metadata->set_country_code(
|
||||
connection_attempt_metadata_params->country_code);
|
||||
connection_attempt_metadata->set_frequency(
|
||||
connection_attempt_metadata_params->frequency);
|
||||
connection_attempt_metadata->set_is_tdls_used(
|
||||
connection_attempt_metadata_params->is_tdls_used);
|
||||
connection_attempt_metadata->set_wifi_hotspot_status(
|
||||
connection_attempt_metadata_params->wifi_hotspot_enabled);
|
||||
connection_attempt_metadata->set_try_counts(
|
||||
connection_attempt_metadata_params->try_count);
|
||||
connection_attempt_metadata->set_max_tx_speed(
|
||||
connection_attempt_metadata_params->max_wifi_tx_speed);
|
||||
connection_attempt_metadata->set_max_rx_speed(
|
||||
connection_attempt_metadata_params->max_wifi_rx_speed);
|
||||
connection_attempt_metadata->set_wifi_channel_width(
|
||||
connection_attempt_metadata_params->channel_width);
|
||||
|
||||
if (type == INITIAL && result != RESULT_SUCCESS) {
|
||||
auto it = outgoing_connection_requests_.find(remote_endpoint_id);
|
||||
if (it != outgoing_connection_requests_.end()) {
|
||||
@@ -480,7 +547,7 @@ void AnalyticsRecorder::OnBandwidthUpgradeSuccess(
|
||||
UPGRADE_SUCCESS);
|
||||
}
|
||||
|
||||
void AnalyticsRecorder::OnErrorCode(const ErrorCodeParams& params) {
|
||||
void AnalyticsRecorder::OnErrorCode(const ErrorCodeParams ¶ms) {
|
||||
MutexLock lock(&mutex_);
|
||||
if (!CanRecordAnalyticsLocked("OnErrorCode")) {
|
||||
return;
|
||||
@@ -556,6 +623,28 @@ void AnalyticsRecorder::LogSession() {
|
||||
session_was_logged_ = true;
|
||||
}
|
||||
|
||||
std::unique_ptr<ConnectionAttemptMetadataParams>
|
||||
AnalyticsRecorder::BuildConnectionAttemptMetadataParams(
|
||||
ConnectionTechnology technology, ConnectionBand band, int frequency,
|
||||
int try_count, const std::string &network_operator,
|
||||
const std::string &country_code, bool is_tdls_used,
|
||||
bool wifi_hotspot_enabled, int max_wifi_tx_speed, int max_wifi_rx_speed,
|
||||
int channel_width) {
|
||||
auto params = absl::make_unique<ConnectionAttemptMetadataParams>();
|
||||
params->technology = technology;
|
||||
params->band = band;
|
||||
params->frequency = frequency;
|
||||
params->try_count = try_count;
|
||||
params->network_operator = network_operator;
|
||||
params->country_code = country_code;
|
||||
params->is_tdls_used = is_tdls_used;
|
||||
params->wifi_hotspot_enabled = wifi_hotspot_enabled;
|
||||
params->max_wifi_tx_speed = max_wifi_tx_speed;
|
||||
params->max_wifi_rx_speed = max_wifi_rx_speed;
|
||||
params->channel_width = channel_width;
|
||||
return params;
|
||||
}
|
||||
|
||||
bool AnalyticsRecorder::CanRecordAnalyticsLocked(
|
||||
const std::string &method_name) {
|
||||
NEARBY_LOGS(VERBOSE) << "AnalyticsRecorder LogEvent " << method_name
|
||||
|
||||
Reference in New Issue
Block a user