• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 "media_datashare_stub_impl.h"
18 
19 #include "media_log.h"
20 
21 namespace OHOS {
22 namespace DataShare {
GetOwner()23 std::shared_ptr<MediaDataShareExtAbility> MediaDataShareStubImpl::GetOwner()
24 {
25     return extension_;
26 }
27 
GetFileTypes(const Uri & uri,const std::string & mimeTypeFilter)28 std::vector<std::string> MediaDataShareStubImpl::GetFileTypes(const Uri &uri, const std::string &mimeTypeFilter)
29 {
30     MEDIA_INFO_LOG("begin.");
31     std::vector<std::string> ret;
32     auto client = sptr<MediaDataShareStubImpl>(this);
33     auto extension = client->GetOwner();
34     if (extension == nullptr) {
35         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
36         return ret;
37     }
38     ret = extension->GetFileTypes(uri, mimeTypeFilter);
39     MEDIA_INFO_LOG("end successfully.");
40     return ret;
41 }
42 
OpenFile(const Uri & uri,const std::string & mode)43 int MediaDataShareStubImpl::OpenFile(const Uri &uri, const std::string &mode)
44 {
45     MEDIA_INFO_LOG("begin.");
46     int ret = -1;
47     auto client = sptr<MediaDataShareStubImpl>(this);
48     auto extension = client->GetOwner();
49     if (extension == nullptr) {
50         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
51         return ret;
52     }
53     ret = extension->OpenFile(uri, mode);
54     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
55     return ret;
56 }
57 
OpenRawFile(const Uri & uri,const std::string & mode)58 int MediaDataShareStubImpl::OpenRawFile(const Uri &uri, const std::string &mode)
59 {
60     MEDIA_INFO_LOG("begin.");
61     int ret = -1;
62     auto client = sptr<MediaDataShareStubImpl>(this);
63     auto extension = client->GetOwner();
64     if (extension == nullptr) {
65             MEDIA_ERR_LOG("%{public}s end failed.", __func__);
66             return ret;
67     }
68     ret = extension->OpenRawFile(uri, mode);
69     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
70     return ret;
71 }
72 
Insert(const Uri & uri,const DataShareValuesBucket & value)73 int MediaDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value)
74 {
75     MEDIA_INFO_LOG("begin.");
76     int ret = 0;
77     auto client = sptr<MediaDataShareStubImpl>(this);
78     auto extension = client->GetOwner();
79     if (extension == nullptr) {
80         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
81         return ret;
82     }
83     ret = extension->Insert(uri, value);
84     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
85     return ret;
86 }
87 
Update(const Uri & uri,const DataSharePredicates & predicates,const DataShareValuesBucket & value)88 int MediaDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates,
89     const DataShareValuesBucket &value)
90 {
91     MEDIA_INFO_LOG("begin.");
92     int ret = 0;
93     auto client = sptr<MediaDataShareStubImpl>(this);
94     auto extension = client->GetOwner();
95     if (extension == nullptr) {
96         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
97         return ret;
98     }
99     ret = extension->Update(uri, predicates, value);
100     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
101     return ret;
102 }
103 
Delete(const Uri & uri,const DataSharePredicates & predicates)104 int MediaDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates)
105 {
106     MEDIA_INFO_LOG("begin.");
107     int ret = 0;
108     auto client = sptr<MediaDataShareStubImpl>(this);
109     auto extension = client->GetOwner();
110     if (extension == nullptr) {
111         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
112         return ret;
113     }
114     ret = extension->Delete(uri, predicates);
115     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
116     return ret;
117 }
118 
Query(const Uri & uri,const DataSharePredicates & predicates,std::vector<std::string> & columns)119 std::shared_ptr<DataShareResultSet> MediaDataShareStubImpl::Query(const Uri &uri,
120     const DataSharePredicates &predicates, std::vector<std::string> &columns)
121 {
122     MEDIA_INFO_LOG("begin.");
123     std::shared_ptr<DataShareResultSet> resultSet = nullptr;
124     auto client = sptr<MediaDataShareStubImpl>(this);
125     auto extension = client->GetOwner();
126     if (extension == nullptr) {
127         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
128         return nullptr;
129     }
130     resultSet = extension->Query(uri, predicates, columns);
131     MEDIA_INFO_LOG("end successfully.");
132     return resultSet;
133 }
134 
GetType(const Uri & uri)135 std::string MediaDataShareStubImpl::GetType(const Uri &uri)
136 {
137     MEDIA_INFO_LOG("begin.");
138     std::string ret = "";
139     auto client = sptr<MediaDataShareStubImpl>(this);
140     auto extension = client->GetOwner();
141     if (extension == nullptr) {
142         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
143         return ret;
144     }
145     ret = extension->GetType(uri);
146     MEDIA_INFO_LOG("end successfully.");
147     return ret;
148 }
149 
BatchInsert(const Uri & uri,const std::vector<DataShareValuesBucket> & values)150 int MediaDataShareStubImpl::BatchInsert(const Uri &uri, const std::vector<DataShareValuesBucket> &values)
151 {
152     MEDIA_INFO_LOG("begin.");
153     int ret = 0;
154     auto client = sptr<MediaDataShareStubImpl>(this);
155     auto extension = client->GetOwner();
156     if (extension == nullptr) {
157         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
158         return ret;
159     }
160     ret = extension->BatchInsert(uri, values);
161     MEDIA_INFO_LOG("end successfully.");
162     return ret;
163 }
164 
RegisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)165 bool MediaDataShareStubImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
166 {
167     MEDIA_INFO_LOG("begin.");
168     bool ret = false;
169     auto client = sptr<MediaDataShareStubImpl>(this);
170     auto extension = client->GetOwner();
171     if (extension == nullptr) {
172         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
173         return ret;
174     }
175     ret = extension->RegisterObserver(uri, dataObserver);
176     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
177     return ret;
178 }
179 
UnregisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)180 bool MediaDataShareStubImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
181 {
182     MEDIA_INFO_LOG("begin.");
183     bool ret = false;
184     auto client = sptr<MediaDataShareStubImpl>(this);
185     auto extension = client->GetOwner();
186     if (extension == nullptr) {
187         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
188         return ret;
189     }
190     ret = extension->UnregisterObserver(uri, dataObserver);
191     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
192     return ret;
193 }
194 
NotifyChange(const Uri & uri)195 bool MediaDataShareStubImpl::NotifyChange(const Uri &uri)
196 {
197     MEDIA_INFO_LOG("begin.");
198     bool ret = false;
199     auto client = sptr<MediaDataShareStubImpl>(this);
200     auto extension = client->GetOwner();
201     if (extension == nullptr) {
202         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
203         return ret;
204     }
205     ret = extension->NotifyChange(uri);
206     MEDIA_INFO_LOG("end successfully. ret: %{public}d", ret);
207     return ret;
208 }
209 
NormalizeUri(const Uri & uri)210 Uri MediaDataShareStubImpl::NormalizeUri(const Uri &uri)
211 {
212     MEDIA_INFO_LOG("begin.");
213     Uri urivalue("");
214     auto client = sptr<MediaDataShareStubImpl>(this);
215     auto extension = client->GetOwner();
216     if (extension == nullptr) {
217         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
218         return urivalue;
219     }
220     urivalue = extension->NormalizeUri(uri);
221     MEDIA_INFO_LOG("end successfully.");
222     return urivalue;
223 }
224 
DenormalizeUri(const Uri & uri)225 Uri MediaDataShareStubImpl::DenormalizeUri(const Uri &uri)
226 {
227     MEDIA_INFO_LOG("begin.");
228     Uri urivalue("");
229     auto client = sptr<MediaDataShareStubImpl>(this);
230     auto extension = client->GetOwner();
231     if (extension == nullptr) {
232         MEDIA_ERR_LOG("%{public}s end failed.", __func__);
233         return urivalue;
234     }
235     urivalue = extension->DenormalizeUri(uri);
236     MEDIA_INFO_LOG("end successfully.");
237     return urivalue;
238 }
239 } // namespace DataShare
240 } // namespace OHOS
241