1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #define MLOG_TAG "Extension"
16
17 #include "ringtone_datashare_stub_impl.h"
18
19 #include "ringtone_log.h"
20
21 namespace OHOS {
22 namespace DataShare {
GetOwner()23 std::shared_ptr<RingtoneDataShareExtension> RingtoneDataShareStubImpl::GetOwner()
24 {
25 return extension_;
26 }
27
GetFileTypes(const Uri & uri,const std::string & mimeTypeFilter)28 std::vector<std::string> RingtoneDataShareStubImpl::GetFileTypes(const Uri &uri, const std::string &mimeTypeFilter)
29 {
30 RINGTONE_DEBUG_LOG("begin.");
31 std::vector<std::string> ret;
32 auto client = sptr<RingtoneDataShareStubImpl>(this);
33 auto extension = client->GetOwner();
34 if (extension == nullptr) {
35 RINGTONE_ERR_LOG("end failed.");
36 return ret;
37 }
38 ret = extension->GetFileTypes(uri, mimeTypeFilter);
39 RINGTONE_INFO_LOG("end successfully.");
40 return ret;
41 }
42
OpenFile(const Uri & uri,const std::string & mode)43 int RingtoneDataShareStubImpl::OpenFile(const Uri &uri, const std::string &mode)
44 {
45 int ret = -1;
46 auto client = sptr<RingtoneDataShareStubImpl>(this);
47 auto extension = client->GetOwner();
48 if (extension == nullptr) {
49 RINGTONE_ERR_LOG("end failed.");
50 return ret;
51 }
52 ret = extension->OpenFile(uri, mode);
53 return ret;
54 }
55
OpenRawFile(const Uri & uri,const std::string & mode)56 int RingtoneDataShareStubImpl::OpenRawFile(const Uri &uri, const std::string &mode)
57 {
58 RINGTONE_DEBUG_LOG("begin.");
59 int ret = -1;
60 auto client = sptr<RingtoneDataShareStubImpl>(this);
61 auto extension = client->GetOwner();
62 if (extension == nullptr) {
63 RINGTONE_ERR_LOG("end failed.");
64 return ret;
65 }
66 ret = extension->OpenRawFile(uri, mode);
67 RINGTONE_INFO_LOG("end successfully. ret: %{public}d", ret);
68 return ret;
69 }
70
Insert(const Uri & uri,const DataShareValuesBucket & value)71 int RingtoneDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value)
72 {
73 int ret = 0;
74 auto client = sptr<RingtoneDataShareStubImpl>(this);
75 auto extension = client->GetOwner();
76 if (extension == nullptr) {
77 RINGTONE_ERR_LOG("end failed.");
78 return ret;
79 }
80 ret = extension->Insert(uri, value);
81 return ret;
82 }
83
InsertExt(const Uri & uri,const DataShareValuesBucket & value,std::string & result)84 int RingtoneDataShareStubImpl::InsertExt(const Uri &uri, const DataShareValuesBucket &value, std::string &result)
85 {
86 int ret = 0;
87 auto client = sptr<RingtoneDataShareStubImpl>(this);
88 auto extension = client->GetOwner();
89 if (extension == nullptr) {
90 RINGTONE_ERR_LOG("end failed.");
91 return ret;
92 }
93 ret = extension->InsertExt(uri, value, result);
94 return ret;
95 }
96
Update(const Uri & uri,const DataSharePredicates & predicates,const DataShareValuesBucket & value)97 int RingtoneDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates,
98 const DataShareValuesBucket &value)
99 {
100 int ret = 0;
101 auto client = sptr<RingtoneDataShareStubImpl>(this);
102 auto extension = client->GetOwner();
103 if (extension == nullptr) {
104 RINGTONE_ERR_LOG("end failed.");
105 return ret;
106 }
107 ret = extension->Update(uri, predicates, value);
108 return ret;
109 }
110
Delete(const Uri & uri,const DataSharePredicates & predicates)111 int RingtoneDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates)
112 {
113 int ret = 0;
114 auto client = sptr<RingtoneDataShareStubImpl>(this);
115 auto extension = client->GetOwner();
116 if (extension == nullptr) {
117 RINGTONE_ERR_LOG("end failed.");
118 return ret;
119 }
120 ret = extension->Delete(uri, predicates);
121 return ret;
122 }
123
Query(const Uri & uri,const DataSharePredicates & predicates,std::vector<std::string> & columns,DatashareBusinessError & businessError)124 std::shared_ptr<DataShareResultSet> RingtoneDataShareStubImpl::Query(const Uri &uri,
125 const DataSharePredicates &predicates, std::vector<std::string> &columns, DatashareBusinessError &businessError)
126 {
127 auto client = sptr<RingtoneDataShareStubImpl>(this);
128 auto extension = client->GetOwner();
129 if (extension == nullptr) {
130 RINGTONE_ERR_LOG("end failed.");
131 return nullptr;
132 }
133 return extension->Query(uri, predicates, columns, businessError);
134 }
135
GetType(const Uri & uri)136 std::string RingtoneDataShareStubImpl::GetType(const Uri &uri)
137 {
138 RINGTONE_DEBUG_LOG("begin.");
139 std::string ret = "";
140 auto client = sptr<RingtoneDataShareStubImpl>(this);
141 auto extension = client->GetOwner();
142 if (extension == nullptr) {
143 RINGTONE_ERR_LOG("end failed.");
144 return ret;
145 }
146 ret = extension->GetType(uri);
147 RINGTONE_INFO_LOG("end successfully.");
148 return ret;
149 }
150
BatchInsert(const Uri & uri,const std::vector<DataShareValuesBucket> & values)151 int RingtoneDataShareStubImpl::BatchInsert(const Uri &uri, const std::vector<DataShareValuesBucket> &values)
152 {
153 RINGTONE_DEBUG_LOG("begin.");
154 int ret = 0;
155 auto client = sptr<RingtoneDataShareStubImpl>(this);
156 auto extension = client->GetOwner();
157 if (extension == nullptr) {
158 RINGTONE_ERR_LOG("end failed.");
159 return ret;
160 }
161 ret = extension->BatchInsert(uri, values);
162 RINGTONE_INFO_LOG("end successfully.");
163 return ret;
164 }
165
RegisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)166 bool RingtoneDataShareStubImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
167 {
168 RINGTONE_DEBUG_LOG("begin.");
169 bool ret = false;
170 auto client = sptr<RingtoneDataShareStubImpl>(this);
171 auto extension = client->GetOwner();
172 if (extension == nullptr) {
173 RINGTONE_ERR_LOG("end failed.");
174 return ret;
175 }
176 ret = extension->RegisterObserver(uri, dataObserver);
177 RINGTONE_INFO_LOG("end successfully. ret: %{public}d", ret);
178 return ret;
179 }
180
UnregisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)181 bool RingtoneDataShareStubImpl::UnregisterObserver(const Uri &uri,
182 const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
183 {
184 RINGTONE_DEBUG_LOG("begin.");
185 bool ret = false;
186 auto client = sptr<RingtoneDataShareStubImpl>(this);
187 auto extension = client->GetOwner();
188 if (extension == nullptr) {
189 RINGTONE_ERR_LOG("end failed.");
190 return ret;
191 }
192 ret = extension->UnregisterObserver(uri, dataObserver);
193 RINGTONE_INFO_LOG("end successfully. ret: %{public}d", ret);
194 return ret;
195 }
196
NotifyChange(const Uri & uri)197 bool RingtoneDataShareStubImpl::NotifyChange(const Uri &uri)
198 {
199 RINGTONE_DEBUG_LOG("begin.");
200 bool ret = false;
201 auto client = sptr<RingtoneDataShareStubImpl>(this);
202 auto extension = client->GetOwner();
203 if (extension == nullptr) {
204 RINGTONE_ERR_LOG("end failed.");
205 return ret;
206 }
207 ret = extension->NotifyChange(uri);
208 RINGTONE_INFO_LOG("end successfully. ret: %{public}d", ret);
209 return ret;
210 }
211
NormalizeUri(const Uri & uri)212 Uri RingtoneDataShareStubImpl::NormalizeUri(const Uri &uri)
213 {
214 RINGTONE_DEBUG_LOG("begin.");
215 Uri urivalue("");
216 auto client = sptr<RingtoneDataShareStubImpl>(this);
217 auto extension = client->GetOwner();
218 if (extension == nullptr) {
219 RINGTONE_ERR_LOG("end failed.");
220 return urivalue;
221 }
222 urivalue = extension->NormalizeUri(uri);
223 RINGTONE_INFO_LOG("end successfully.");
224 return urivalue;
225 }
226
DenormalizeUri(const Uri & uri)227 Uri RingtoneDataShareStubImpl::DenormalizeUri(const Uri &uri)
228 {
229 RINGTONE_DEBUG_LOG("begin.");
230 Uri urivalue("");
231 auto client = sptr<RingtoneDataShareStubImpl>(this);
232 auto extension = client->GetOwner();
233 if (extension == nullptr) {
234 RINGTONE_ERR_LOG("end failed.");
235 return urivalue;
236 }
237 urivalue = extension->DenormalizeUri(uri);
238 RINGTONE_INFO_LOG("end successfully.");
239 return urivalue;
240 }
241 } // namespace DataShare
242 } // namespace OHOS
243