Merge branch 'google3' to roll forward cl/336363104.

This commit is contained in:
hai007
2020-10-09 14:53:41 -07:00
31 changed files with 728 additions and 254 deletions
+3 -1
View File
@@ -51,7 +51,9 @@ bool BleMedium::StartScanning(
&context.peripheral, &peripheral,
peripheral.GetName().c_str());
discovered_peripheral_callback_.peripheral_discovered_cb(
context.peripheral, service_id, fast_advertisement);
context.peripheral, service_id,
context.peripheral.GetAdvertisementBytes(service_id),
fast_advertisement);
}
},
.peripheral_lost_cb =
+4 -3
View File
@@ -71,11 +71,12 @@ class BleMedium final {
public:
using Platform = api::ImplementationPlatform;
struct DiscoveredPeripheralCallback {
std::function<void(BlePeripheral& peripheral,
const std::string& service_id,
std::function<void(BlePeripheral& peripheral, const std::string& service_id,
const ByteArray& advertisement_bytes,
bool fast_advertisement)>
peripheral_discovered_cb =
DefaultCallback<BlePeripheral&, const std::string&, bool>();
DefaultCallback<BlePeripheral&, const std::string&,
const ByteArray&, bool>();
std::function<void(BlePeripheral& peripheral,
const std::string& service_id)>
peripheral_lost_cb =
+8 -8
View File
@@ -58,12 +58,12 @@ TEST_F(BleMediumTest, CanStartAdvertising) {
fast_advertisement_service_uuid);
EXPECT_TRUE(ble_b.StartScanning(
service_id,
fast_advertisement_service_uuid,
service_id, fast_advertisement_service_uuid,
DiscoveredPeripheralCallback{
.peripheral_discovered_cb =
[&found_latch](
BlePeripheral& peripheral, const std::string& service_id,
const ByteArray& advertisement_bytes,
bool fast_advertisement) { found_latch.CountDown(); },
}));
EXPECT_TRUE(found_latch.Await(kWaitDuration).result());
@@ -85,12 +85,12 @@ TEST_F(BleMediumTest, CanStartScanning) {
CountDownLatch lost_latch(1);
ble_a.StartScanning(
service_id,
fast_advertisement_service_uuid,
service_id, fast_advertisement_service_uuid,
DiscoveredPeripheralCallback{
.peripheral_discovered_cb =
[&found_latch](
BlePeripheral& peripheral, const std::string& service_id,
const ByteArray& advertisement_bytes,
bool fast_advertisement) { found_latch.CountDown(); },
.peripheral_lost_cb =
[&lost_latch](BlePeripheral& peripheral,
@@ -120,12 +120,12 @@ TEST_F(BleMediumTest, CanStopDiscovery) {
CountDownLatch lost_latch(1);
ble_a.StartScanning(
service_id,
fast_advertisement_service_uuid,
service_id, fast_advertisement_service_uuid,
DiscoveredPeripheralCallback{
.peripheral_discovered_cb =
[&found_latch](
BlePeripheral& peripheral, const std::string& service_id,
const ByteArray& advertisement_bytes,
bool fast_advertisement) { found_latch.CountDown(); },
.peripheral_lost_cb =
[&lost_latch](BlePeripheral& peripheral,
@@ -156,12 +156,12 @@ TEST_F(BleMediumTest, CanStartAcceptingConnectionsAndConnect) {
BlePeripheral* discovered_peripheral = nullptr;
ble_a.StartScanning(
service_id,
fast_advertisement_service_uuid,
service_id, fast_advertisement_service_uuid,
DiscoveredPeripheralCallback{
.peripheral_discovered_cb =
[&found_latch, &discovered_peripheral](
BlePeripheral& peripheral, const std::string& service_id,
const ByteArray& advertisement_bytes,
bool fast_advertisement) {
NEARBY_LOG(
INFO,
+3
View File
@@ -20,6 +20,9 @@ class Future final {
void AddListener(Runnable runnable, api::Executor* executor) {
impl_->AddListener(std::move(runnable), executor);
}
bool IsSet() const {
return impl_->IsSet();
}
private:
// Instance of future implementation is wrapped in shared_ptr<> to make
+8 -2
View File
@@ -25,8 +25,9 @@ class SettableFuture : public api::SettableFuture<T> {
exception_ = {Exception::kSuccess};
completed_.Notify();
InvokeAllLocked();
return true;
}
return true;
return false;
}
void AddListener(Runnable runnable, api::Executor* executor) override {
@@ -38,6 +39,11 @@ class SettableFuture : public api::SettableFuture<T> {
}
}
bool IsSet() const {
MutexLock lock(&mutex_);
return done_;
}
bool SetException(Exception exception) override {
MutexLock lock(&mutex_);
return SetExceptionLocked(exception);
@@ -94,7 +100,7 @@ class SettableFuture : public api::SettableFuture<T> {
listeners_.clear();
}
Mutex mutex_;
mutable Mutex mutex_;
ConditionVariable completed_{&mutex_};
std::vector<std::pair<api::Executor*, std::function<void()>>> listeners_;
bool done_{false};