// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include "presence/presence_service_impl.h" #include #include #include #include "internal/platform/borrowable.h" #include "presence/data_types.h" #include "presence/presence_client_impl.h" #include "presence/presence_device_provider.h" namespace nearby { namespace presence { std::unique_ptr PresenceServiceImpl::CreatePresenceClient() { return PresenceClientImpl::Factory::Create(lender_.GetBorrowable()); } absl::StatusOr PresenceServiceImpl::StartScan( ScanRequest scan_request, ScanCallback callback) { return service_controller_.StartScan(scan_request, std::move(callback)); } void PresenceServiceImpl::StopScan(ScanSessionId id) { service_controller_.StopScan(id); } absl::StatusOr PresenceServiceImpl::StartBroadcast( BroadcastRequest broadcast_request, BroadcastCallback callback) { return service_controller_.StartBroadcast(broadcast_request, std::move(callback)); } void PresenceServiceImpl::StopBroadcast(BroadcastSessionId session) { service_controller_.StopBroadcast(session); } void PresenceServiceImpl::UpdateDeviceIdentityMetaData( const ::nearby::internal::DeviceIdentityMetaData& device_identity_metadata, bool regen_credentials, absl::string_view manager_app_id, const std::vector& identity_types, int credential_life_cycle_days, int contiguous_copy_of_credentials, GenerateCredentialsResultCallback credentials_generated_cb) { provider_.UpdateDeviceIdentityMetaData(device_identity_metadata); provider_.SetManagerAppId(manager_app_id); service_controller_.UpdateDeviceIdentityMetaData( device_identity_metadata, regen_credentials, manager_app_id, identity_types, credential_life_cycle_days, contiguous_copy_of_credentials, std::move(credentials_generated_cb)); } void PresenceServiceImpl::GetLocalPublicCredentials( const CredentialSelector& credential_selector, GetPublicCredentialsResultCallback callback) { service_controller_.GetLocalPublicCredentials(credential_selector, std::move(callback)); } void PresenceServiceImpl::UpdateRemotePublicCredentials( absl::string_view manager_app_id, absl::string_view account_name, const std::vector& remote_public_creds, UpdateRemotePublicCredentialsCallback credentials_updated_cb) { service_controller_.UpdateRemotePublicCredentials( manager_app_id, account_name, remote_public_creds, std::move(credentials_updated_cb)); } } // namespace presence } // namespace nearby