1a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// 2a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// Copyright (C) 2016 The Android Open Source Project 3a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// 4a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// Licensed under the Apache License, Version 2.0 (the "License"); 5a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// you may not use this file except in compliance with the License. 6a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// You may obtain a copy of the License at 7a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// 8a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// http://www.apache.org/licenses/LICENSE-2.0 9a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// 10a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// Unless required by applicable law or agreed to in writing, software 11a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// distributed under the License is distributed on an "AS IS" BASIS, 12a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// See the License for the specific language governing permissions and 14a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// limitations under the License. 15a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan// 16a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 17a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan#include "shill/binder/binder_adaptor.h" 18a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 19a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan#include <string> 20a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 21a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan#include <utils/String16.h> 22a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 23a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan#include "android/system/connectivity/shill/IPropertyChangedCallback.h" 24a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan#include "shill/logging.h" 25a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 26a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanusing android::sp; 27a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanusing android::String16; 28a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanusing android::system::connectivity::shill::IPropertyChangedCallback; 29a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanusing std::string; 30a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 31a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tannamespace shill { 32a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 33a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tannamespace Logging { 34a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanstatic auto kModuleLogScope = ScopeLogger::kBinder; 35a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanstatic string ObjectID(BinderAdaptor* b) { 36a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan return "(binder_adaptor)"; 37a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} 38a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} // namespace Logging 39a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 40a04c6448da585d8bef65b8bbd44711fd7882c917Samuel TanBinderAdaptor::BinderAdaptor(const string& id) : id_(id) { 41a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan SLOG(this, 2) << "BinderAdaptor: " << id; 42a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} 43a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 44a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanvoid BinderAdaptor::AddPropertyChangedSignalHandler( 45a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan const sp<IPropertyChangedCallback>& property_changed_callback) { 46a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan property_changed_callbacks_.push_back(property_changed_callback); 47a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} 48a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 49a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tanvoid BinderAdaptor::SendPropertyChangedSignal(const string& name) { 50a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan for (const auto& callback : property_changed_callbacks_) { 51a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan callback->OnPropertyChanged(String16(name.c_str())); 52a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan } 53a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} 54a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan 55a04c6448da585d8bef65b8bbd44711fd7882c917Samuel Tan} // namespace shill 56