• 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_DEBUG_LOG("begin.");
31     std::vector<std::string> ret;
32     auto client = sptr<MediaDataShareStubImpl>(this);
33     auto extension = client->GetOwner();
34     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
35     ret = extension->GetFileTypes(uri, mimeTypeFilter);
36     MEDIA_DEBUG_LOG("end successfully.");
37     return ret;
38 }
39 
OpenFile(const Uri & uri,const std::string & mode)40 int MediaDataShareStubImpl::OpenFile(const Uri &uri, const std::string &mode)
41 {
42     int ret = -1;
43     auto client = sptr<MediaDataShareStubImpl>(this);
44     auto extension = client->GetOwner();
45     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
46     ret = extension->OpenFile(uri, mode);
47     return ret;
48 }
49 
OpenRawFile(const Uri & uri,const std::string & mode)50 int MediaDataShareStubImpl::OpenRawFile(const Uri &uri, const std::string &mode)
51 {
52     MEDIA_DEBUG_LOG("begin.");
53     int ret = -1;
54     auto client = sptr<MediaDataShareStubImpl>(this);
55     auto extension = client->GetOwner();
56     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
57     ret = extension->OpenRawFile(uri, mode);
58     MEDIA_DEBUG_LOG("end successfully. ret: %{public}d", ret);
59     return ret;
60 }
61 
Insert(const Uri & uri,const DataShareValuesBucket & value)62 int MediaDataShareStubImpl::Insert(const Uri &uri, const DataShareValuesBucket &value)
63 {
64     int ret = 0;
65     auto client = sptr<MediaDataShareStubImpl>(this);
66     auto extension = client->GetOwner();
67     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
68     ret = extension->Insert(uri, value);
69     return ret;
70 }
71 
InsertExt(const Uri & uri,const DataShareValuesBucket & value,std::string & result)72 int MediaDataShareStubImpl::InsertExt(const Uri &uri, const DataShareValuesBucket &value, std::string &result)
73 {
74     int ret = 0;
75     auto client = sptr<MediaDataShareStubImpl>(this);
76     auto extension = client->GetOwner();
77     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
78     ret = extension->InsertExt(uri, value, result);
79     return ret;
80 }
81 
Update(const Uri & uri,const DataSharePredicates & predicates,const DataShareValuesBucket & value)82 int MediaDataShareStubImpl::Update(const Uri &uri, const DataSharePredicates &predicates,
83     const DataShareValuesBucket &value)
84 {
85     int ret = 0;
86     auto client = sptr<MediaDataShareStubImpl>(this);
87     auto extension = client->GetOwner();
88     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
89     ret = extension->Update(uri, predicates, value);
90     return ret;
91 }
92 
Delete(const Uri & uri,const DataSharePredicates & predicates)93 int MediaDataShareStubImpl::Delete(const Uri &uri, const DataSharePredicates &predicates)
94 {
95     int ret = 0;
96     auto client = sptr<MediaDataShareStubImpl>(this);
97     auto extension = client->GetOwner();
98     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
99     ret = extension->Delete(uri, predicates);
100     return ret;
101 }
102 
Query(const Uri & uri,const DataSharePredicates & predicates,std::vector<std::string> & columns,DatashareBusinessError & businessError)103 std::shared_ptr<DataShareResultSet> MediaDataShareStubImpl::Query(const Uri &uri,
104     const DataSharePredicates &predicates, std::vector<std::string> &columns, DatashareBusinessError &businessError)
105 {
106     auto client = sptr<MediaDataShareStubImpl>(this);
107     auto extension = client->GetOwner();
108     CHECK_AND_RETURN_RET_LOG(extension != nullptr, nullptr, "%{public}s end failed.", __func__);
109     return extension->Query(uri, predicates, columns, businessError);
110 }
111 
GetType(const Uri & uri)112 std::string MediaDataShareStubImpl::GetType(const Uri &uri)
113 {
114     MEDIA_DEBUG_LOG("begin.");
115     std::string ret = "";
116     auto client = sptr<MediaDataShareStubImpl>(this);
117     auto extension = client->GetOwner();
118     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
119     ret = extension->GetType(uri);
120     MEDIA_DEBUG_LOG("end successfully.");
121     return ret;
122 }
123 
BatchInsert(const Uri & uri,const std::vector<DataShareValuesBucket> & values)124 int MediaDataShareStubImpl::BatchInsert(const Uri &uri, const std::vector<DataShareValuesBucket> &values)
125 {
126     MEDIA_DEBUG_LOG("begin.");
127     int ret = 0;
128     auto client = sptr<MediaDataShareStubImpl>(this);
129     auto extension = client->GetOwner();
130     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
131     ret = extension->BatchInsert(uri, values);
132     MEDIA_DEBUG_LOG("end successfully.");
133     return ret;
134 }
135 
RegisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)136 bool MediaDataShareStubImpl::RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
137 {
138     MEDIA_DEBUG_LOG("begin.");
139     bool ret = false;
140     auto client = sptr<MediaDataShareStubImpl>(this);
141     auto extension = client->GetOwner();
142     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
143     ret = extension->RegisterObserver(uri, dataObserver);
144     MEDIA_DEBUG_LOG("end successfully. ret: %{public}d", ret);
145     return ret;
146 }
147 
UnregisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)148 bool MediaDataShareStubImpl::UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver)
149 {
150     MEDIA_DEBUG_LOG("begin.");
151     bool ret = false;
152     auto client = sptr<MediaDataShareStubImpl>(this);
153     auto extension = client->GetOwner();
154     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
155     ret = extension->UnregisterObserver(uri, dataObserver);
156     MEDIA_DEBUG_LOG("end successfully. ret: %{public}d", ret);
157     return ret;
158 }
159 
NotifyChange(const Uri & uri)160 bool MediaDataShareStubImpl::NotifyChange(const Uri &uri)
161 {
162     MEDIA_DEBUG_LOG("begin.");
163     bool ret = false;
164     auto client = sptr<MediaDataShareStubImpl>(this);
165     auto extension = client->GetOwner();
166     CHECK_AND_RETURN_RET_LOG(extension != nullptr, ret, "%{public}s end failed.", __func__);
167     ret = extension->NotifyChange(uri);
168     MEDIA_DEBUG_LOG("end successfully. ret: %{public}d", ret);
169     return ret;
170 }
171 
NormalizeUri(const Uri & uri)172 Uri MediaDataShareStubImpl::NormalizeUri(const Uri &uri)
173 {
174     MEDIA_DEBUG_LOG("begin.");
175     Uri urivalue("");
176     auto client = sptr<MediaDataShareStubImpl>(this);
177     auto extension = client->GetOwner();
178     CHECK_AND_RETURN_RET_LOG(extension != nullptr, urivalue, "%{public}s end failed.", __func__);
179     urivalue = extension->NormalizeUri(uri);
180     MEDIA_DEBUG_LOG("end successfully.");
181     return urivalue;
182 }
183 
DenormalizeUri(const Uri & uri)184 Uri MediaDataShareStubImpl::DenormalizeUri(const Uri &uri)
185 {
186     MEDIA_DEBUG_LOG("begin.");
187     Uri urivalue("");
188     auto client = sptr<MediaDataShareStubImpl>(this);
189     auto extension = client->GetOwner();
190     CHECK_AND_RETURN_RET_LOG(extension != nullptr, urivalue, "%{public}s end failed.", __func__);
191     urivalue = extension->DenormalizeUri(uri);
192     MEDIA_DEBUG_LOG("end successfully.");
193     return urivalue;
194 }
195 } // namespace DataShare
196 } // namespace OHOS
197