mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 22:56:12 -04:00
Clone
2
Feature Flags
kidfromjupiter edited this page 2026-01-23 09:15:01 +05:30
This page documents the platform FeatureFlags (FeatureFlags::Flags) defined in
internal/platform/feature_flags.h and their default values. These flags control
runtime behavior used across mediums, BWU logic, multiplexing, and other
platform behaviors.
How to access
- Read: FeatureFlags::GetInstance().GetFlags()
- Override for tests: FeatureFlags::GetMutableFlagsForTesting() or FeatureFlags::SetFlags(const Flags&)
Flags (name = default) with brief notes
General
- enable_cancellation_flag = true Controls whether cancellation flag support is enabled.
- enable_async_bandwidth_upgrade = true Allow asynchronous bandwidth upgrade flows.
- cancel_waits_for_running_tasks = true If a scheduled runnable is already running, Cancel() will synchronously wait for task completion.
- keep_alive_interval_millis = 5000
- keep_alive_timeout_millis = 30000 Keep-alive interval/timeout (ms).
Bandwidth upgrade (BWU)
- use_exp_backoff_in_bwu_retry = true If true, BWU retries use exponential backoff.
- bwu_retry_exp_backoff_initial_delay = 3s
- bwu_retry_exp_backoff_maximum_delay = 300s
- enable_send_payload_offset = true Support starting file/stream payloads at a non-zero offset.
- support_multiple_bwu_mediums = true Better bookkeeping to support multiple BWU mediums and endpoints.
- enable_async_bandwidth_upgrade = true
Bluetooth / Connection
- enable_set_radio_state = false Allow code to change bluetooth radio state (disabled by default).
- enable_connection_timeout = true Medium connection will timeout when unable to connect within a duration.
- enable_bluetooth_connection_status_track = true Track Bluetooth Classic connection status.
- enable_scan_for_fast_pair_advertisement = false Enable BLE scan for Fast Pair advertisement UUID (0x2cfe).
- skip_service_discovery_before_connecting_to_rfcomm = false Skip SDP check when connecting over RFCOMM (Windows workaround).
- enable_ble_v2_async_scanning = false Use async StartScanning/StopScanning for BLE V2.
- enable_invoking_legacy_device_discovered_cb = false Enable legacy discovered-device callback inside BLE V2 flow.
Safe-to-disconnect / auto-reconnect / ack behavior
- min_nc_version_supports_safe_to_disconnect = 1
- min_nc_version_supports_auto_reconnect = 3
- safe_to_disconnect_reconnect_retry_delay_millis = 4000ms
- safe_to_disconnect_reconnect_timeout_millis = 15000ms
- safe_to_disconnect_reconnect_retry_attempts = 3
- safe_to_disconnect_skip_duplicated_endpoint_duration = 2000ms
- min_nc_version_supports_payload_received_ack = 6
- safe_to_disconnect_ack_delay_millis = 30000ms
- safe_to_disconnect_remote_disc_delay_millis = 10000ms
- safe_to_disconnect_auto_resume_timeout_millis = 60000ms
- wait_payload_received_ack_millis = 1000ms
Multiplexing / Mediums
- mediums_frame_read_timeout_millis = 15000ms
- mediums_frame_write_timeout_millis = 15000ms
- multiplex_socket_connection_response_timeout_millis = 3000ms
- multiplex_socket_middle_priority_queue_capacity = 50
- connection_max_frame_length = 1048576
- blocking_queue_stream_queue_capacity = 10
- support_web_rtc_non_cellular_medium = false
Related flags and readers
- NearbyFlags is a separate flag reader used throughout the Connections code (see internal/flags/nearby_flags.h and default_flag_reader.h). Use NearbyFlags::GetInstance() to query and override boolean/int/string flags when necessary.
References
- internal/platform/feature_flags.h
- internal/flags/nearby_flags.h
- internal/flags/default_flag_reader.h