Nick Bourdakos 0a13ce51f4 Make GNCBLEGATTServer thread safe
Fixes an issue where if a characteristic is created and then updated with a non-nil value, and a new characteristic under the same service is added, then when the service is re-added the old characteristic will be permanently cached and the dynamic reads will stop working.

This also eliminates the issue when characteristics are created concurrently, since service additions are batched, if the service addition fails then only one of the characteristics will know that it failed to get added.

This change also introduces the nuance of "success" does not mean the CoreBluetooth method has completed successfully, but instead means that the intended state has been recorded and the class will do its best to maintain that state. For example, a successful "start advertising" call means that we have the advertisement cached and we will start advertising as soon as we can (like BT transitions from off to on) and will do our best to keep advertising (like BT transitions from on to off to on again).

PiperOrigin-RevId: 551660634
2023-07-27 15:40:30 -07:00
2023-05-22 10:28:16 -07:00
2023-07-26 13:06:09 -07:00
2023-06-05 22:46:43 +00:00
2023-06-05 22:46:43 +00:00
2023-03-14 00:11:18 -07:00
2023-03-22 13:33:59 -07:00
.
2023-06-07 20:40:42 +00:00

Nearby

Nearby is a collection of projects focused on connectivity that enable building cross-device experiences.

This is not an officially supported Google product.

Projects

Nearby Connections

A peer-to-peer networking API that allows apps to easily discover, connect to, and exchange data with nearby devices in real-time, regardless of network connectivity.

Fast Pair

Utilizes Bluetooth Low Energy (BLE) to discover nearby Bluetooth devices without using significant phone battery, enabling "magical" scenarios based on device proximity.

Nearby Presence

An extension to Nearby Connections that features an extensible identity model for authentication and restricted visibility, resource management for system health, and proximity detection through sensor fusion.

Nearby for Embedded Systems

A lightweight implementation of Fast Pair intended for embedded systems.

Contributing

We encourage you to contribute to Nearby! Please check out the Contributing to Nearby guide for guidelines about how to proceed.

License

Nearby is released under the Apache License 2.0

Languages
C++ 97.6%
Objective-C 1.1%
Objective-C++ 0.6%
Starlark 0.3%
C 0.2%
Other 0.1%