1 //
2 // Copyright (C) 2016 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 #include "shill/binder/service_binder_adaptor.h"
18
19 #include <binder/Status.h>
20
21 #include "shill/logging.h"
22 #include "shill/service.h"
23
24 using android::binder::Status;
25 using android::IBinder;
26 using android::sp;
27 using android::system::connectivity::shill::IPropertyChangedCallback;
28 using std::string;
29
30 namespace shill {
31
32 namespace Logging {
33 static auto kModuleLogScope = ScopeLogger::kBinder;
ObjectID(ServiceBinderAdaptor * s)34 static string ObjectID(ServiceBinderAdaptor* s) {
35 return "Service binder adaptor (id " + s->GetRpcIdentifier() + ", " +
36 s->service()->unique_name() + ")";
37 }
38 } // namespace Logging
39
ServiceBinderAdaptor(Service * service,const std::string & id)40 ServiceBinderAdaptor::ServiceBinderAdaptor(Service* service,
41 const std::string& id)
42 : BinderAdaptor(id), service_(service) {}
43
~ServiceBinderAdaptor()44 ServiceBinderAdaptor::~ServiceBinderAdaptor() { service_ = nullptr; }
45
EmitBoolChanged(const string & name,bool)46 void ServiceBinderAdaptor::EmitBoolChanged(const string& name, bool /*value*/) {
47 SLOG(this, 2) << __func__ << ": " << name;
48 SendPropertyChangedSignal(name);
49 }
50
EmitUint8Changed(const string & name,uint8_t)51 void ServiceBinderAdaptor::EmitUint8Changed(const string& name,
52 uint8_t /*value*/) {
53 SLOG(this, 2) << __func__ << ": " << name;
54 SendPropertyChangedSignal(name);
55 }
56
EmitUint16Changed(const string & name,uint16_t)57 void ServiceBinderAdaptor::EmitUint16Changed(const string& name,
58 uint16_t /*value*/) {
59 SLOG(this, 2) << __func__ << ": " << name;
60 SendPropertyChangedSignal(name);
61 }
62
EmitUint16sChanged(const string & name,const Uint16s &)63 void ServiceBinderAdaptor::EmitUint16sChanged(const string& name,
64 const Uint16s& /*value*/) {
65 SLOG(this, 2) << __func__ << ": " << name;
66 SendPropertyChangedSignal(name);
67 }
68
EmitUintChanged(const string & name,uint32_t)69 void ServiceBinderAdaptor::EmitUintChanged(const string& name,
70 uint32_t /*value*/) {
71 SLOG(this, 2) << __func__ << ": " << name;
72 SendPropertyChangedSignal(name);
73 }
74
EmitIntChanged(const string & name,int)75 void ServiceBinderAdaptor::EmitIntChanged(const string& name, int /*value*/) {
76 SLOG(this, 2) << __func__ << ": " << name;
77 SendPropertyChangedSignal(name);
78 }
79
EmitRpcIdentifierChanged(const string & name,const string &)80 void ServiceBinderAdaptor::EmitRpcIdentifierChanged(const string& name,
81 const string& /*value*/) {
82 SLOG(this, 2) << __func__ << ": " << name;
83 SendPropertyChangedSignal(name);
84 }
85
EmitStringChanged(const string & name,const string &)86 void ServiceBinderAdaptor::EmitStringChanged(const string& name,
87 const string& /*value*/) {
88 SLOG(this, 2) << __func__ << ": " << name;
89 SendPropertyChangedSignal(name);
90 }
91
EmitStringmapChanged(const string & name,const Stringmap &)92 void ServiceBinderAdaptor::EmitStringmapChanged(const string& name,
93 const Stringmap& /*value*/) {
94 SLOG(this, 2) << __func__ << ": " << name;
95 SendPropertyChangedSignal(name);
96 }
97
Connect()98 Status ServiceBinderAdaptor::Connect() {
99 // STUB IMPLEMENTATION.
100 // TODO(samueltan): replace this with proper implementation.
101 return Status::ok();
102 }
103
GetState(int32_t * _aidl_return)104 Status ServiceBinderAdaptor::GetState(int32_t* _aidl_return) {
105 // STUB IMPLEMENTATION.
106 // TODO(samueltan): replace this with proper implementation.
107 return Status::ok();
108 }
109
GetStrength(int8_t * _aidl_return)110 Status ServiceBinderAdaptor::GetStrength(int8_t* _aidl_return) {
111 // STUB IMPLEMENTATION.
112 // TODO(samueltan): replace this with proper implementation.
113 return Status::ok();
114 }
115
GetError(int32_t * _aidl_return)116 Status ServiceBinderAdaptor::GetError(int32_t* _aidl_return) {
117 // STUB IMPLEMENTATION.
118 // TODO(samueltan): replace this with proper implementation.
119 return Status::ok();
120 }
121
RegisterPropertyChangedSignalHandler(const sp<IPropertyChangedCallback> & callback)122 Status ServiceBinderAdaptor::RegisterPropertyChangedSignalHandler(
123 const sp<IPropertyChangedCallback>& callback) {
124 AddPropertyChangedSignalHandler(callback);
125 return Status::ok();
126 }
127
128 } // namespace shill
129