mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 14:46:12 -04:00
updated bazelproject file
This commit is contained in:
+6
-9
@@ -1,17 +1,14 @@
|
|||||||
directories:
|
directories:
|
||||||
.
|
internal/platform/implementation/linux
|
||||||
-bazel-*
|
internal/platform/implementation/windows
|
||||||
|
internal/platform/implementation/apple
|
||||||
|
sharing
|
||||||
|
connections
|
||||||
|
presence
|
||||||
|
|
||||||
targets:
|
|
||||||
//internal/platform/implementation/linux/test:all
|
|
||||||
//internal/platform/implementation/linux:all
|
|
||||||
//internal/platform/implementation/windows:all
|
|
||||||
|
|
||||||
derive_targets_from_directories: true
|
derive_targets_from_directories: true
|
||||||
|
|
||||||
additional_languages:
|
|
||||||
c++
|
|
||||||
|
|
||||||
# Ensure external dependencies are indexed
|
# Ensure external dependencies are indexed
|
||||||
build_flags:
|
build_flags:
|
||||||
--keep_going
|
--keep_going
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ BleV2Medium::BleV2Medium(BluetoothAdapter &adapter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//async api
|
//async api
|
||||||
// this doesn't run. wonder why
|
// runs with nearby presence
|
||||||
std::unique_ptr<api::ble::BleMedium::AdvertisingSession>
|
std::unique_ptr<api::ble::BleMedium::AdvertisingSession>
|
||||||
BleV2Medium::StartAdvertising(
|
BleV2Medium::StartAdvertising(
|
||||||
const api::ble::BleAdvertisementData &advertising_data,
|
const api::ble::BleAdvertisementData &advertising_data,
|
||||||
@@ -164,10 +164,6 @@ BleV2Medium::StartAdvertising(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<sdbus::IProxy> proxy =
|
|
||||||
sdbus::createProxy(*system_bus_, "org.bluez", adapter_.GetObjectPath());
|
|
||||||
proxy->finishRegistration();
|
|
||||||
|
|
||||||
std::shared_ptr<AdvertisingCallback> shared_cb =
|
std::shared_ptr<AdvertisingCallback> shared_cb =
|
||||||
std::make_shared<AdvertisingCallback>(std::move(callback));
|
std::make_shared<AdvertisingCallback>(std::move(callback));
|
||||||
|
|
||||||
@@ -176,39 +172,30 @@ BleV2Medium::StartAdvertising(
|
|||||||
*system_bus_, advertising_data, advertise_set_parameters));
|
*system_bus_, advertising_data, advertise_set_parameters));
|
||||||
auto adv_it = advs_.begin();
|
auto adv_it = advs_.begin();
|
||||||
|
|
||||||
auto pending_call =
|
// Keep async API surface, but register using the same typed DBus path as the
|
||||||
proxy->callMethodAsync("RegisterAdvertisement")
|
// working sync implementation to avoid signature mismatch (oa{sv} vs sa{sv}).
|
||||||
.onInterface(org::bluez::LEAdvertisingManager1_proxy::INTERFACE_NAME)
|
try {
|
||||||
.withArguments((*adv_it)->getObjectPath(),
|
adv_manager_->RegisterAdvertisement((*adv_it)->getObjectPath(), {});
|
||||||
std::map<std::string, sdbus::Variant>{})
|
shared_cb->start_advertising_result(absl::OkStatus());
|
||||||
.uponReplyInvoke(
|
} catch (const sdbus::Error &e) {
|
||||||
[this, proxy, shared_cb, adv_it](const sdbus::Error *error) {
|
advs_.erase(adv_it);
|
||||||
if (error != nullptr && error->isValid()) {
|
DBUS_LOG_METHOD_CALL_ERROR(adv_manager_, "RegisterAdvertisement", e);
|
||||||
{
|
auto name = e.getName();
|
||||||
absl::MutexLock lock(&advs_mutex_);
|
std::string msg = e.getMessage();
|
||||||
advs_.erase(adv_it);
|
absl::Status status;
|
||||||
}
|
if (name == "org.bluez.Error.InvalidArguments" ||
|
||||||
DBUS_LOG_METHOD_CALL_ERROR(adv_manager_,
|
name == "org.bluez.Error.InvalidLength") {
|
||||||
"RegisterAdvertisement", *error);
|
status = absl::InvalidArgumentError(msg);
|
||||||
auto name = error->getName();
|
} else if (name == "org.bluez.Error.AlreadyExists") {
|
||||||
std::string msg = error->getMessage();
|
status = absl::AlreadyExistsError(msg);
|
||||||
absl::Status status;
|
} else if (name == "org.bluez.Error.NotPermitted") {
|
||||||
|
status = absl::ResourceExhaustedError(msg);
|
||||||
if (name == "org.bluez.Error.InvalidArguments" ||
|
} else {
|
||||||
name == "org.bluez.Error.InvalidLength") {
|
status = absl::UnknownError(msg);
|
||||||
status = absl::InvalidArgumentError(msg);
|
}
|
||||||
} else if (name == "org.bluez.Error.AlreadyExists") {
|
shared_cb->start_advertising_result(std::move(status));
|
||||||
status = absl::AlreadyExistsError(msg);
|
return nullptr;
|
||||||
} else if (name == "org.bluez.Error.NotPermitted") {
|
}
|
||||||
status = absl::ResourceExhaustedError(msg);
|
|
||||||
} else {
|
|
||||||
status = absl::UnknownError(msg);
|
|
||||||
}
|
|
||||||
shared_cb->start_advertising_result(std::move(status));
|
|
||||||
} else {
|
|
||||||
shared_cb->start_advertising_result(absl::OkStatus());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
absl::AnyInvocable<absl::Status()> stop_adv = [&, adv_it]() {
|
absl::AnyInvocable<absl::Status()> stop_adv = [&, adv_it]() {
|
||||||
LOG(INFO) << __func__ << ": Unregistering advertisement object "
|
LOG(INFO) << __func__ << ": Unregistering advertisement object "
|
||||||
|
|||||||
Reference in New Issue
Block a user