1 /*
2 * Copyright (c) 2023 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
16 #include "udmf_client.h"
17
18 #include "dds_trace.h"
19
20 #include "error_code.h"
21 #include "logger.h"
22 #include "udmf_service_client.h"
23
24 namespace OHOS {
25 namespace UDMF {
26 const std::string TAG = "UdmfClient::";
27 using namespace OHOS::DistributedDataDfx;
GetInstance()28 UdmfClient &UdmfClient::GetInstance()
29 {
30 static auto instance_ = new UdmfClient();
31 return *instance_;
32 }
33
SetData(CustomOption & option,UnifiedData & unifiedData,std::string & key)34 Status UdmfClient::SetData(CustomOption &option, UnifiedData &unifiedData, std::string &key)
35 {
36 DdsTrace trace(
37 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
38 auto service = UdmfServiceClient::GetInstance();
39 if (service == nullptr) {
40 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
41 return E_IPC;
42 }
43 int32_t ret = service->SetData(option, unifiedData, key);
44 if (ret != E_OK) {
45 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
46 }
47 return static_cast<Status>(ret);
48 }
49
GetData(const QueryOption & query,UnifiedData & unifiedData)50 Status UdmfClient::GetData(const QueryOption &query, UnifiedData &unifiedData)
51 {
52 DdsTrace trace(
53 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
54 auto service = UdmfServiceClient::GetInstance();
55 if (service == nullptr) {
56 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
57 return E_IPC;
58 }
59 int32_t ret = service->GetData(query, unifiedData);
60 if (ret != E_OK) {
61 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
62 }
63 return static_cast<Status>(ret);
64 }
65
GetBatchData(const QueryOption & query,std::vector<UnifiedData> & unifiedDataSet)66 Status UdmfClient::GetBatchData(const QueryOption &query, std::vector<UnifiedData> &unifiedDataSet)
67 {
68 DdsTrace trace(
69 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
70 auto service = UdmfServiceClient::GetInstance();
71 if (service == nullptr) {
72 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
73 return E_IPC;
74 }
75 int32_t ret = service->GetBatchData(query, unifiedDataSet);
76 if (ret != E_OK) {
77 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
78 }
79 return static_cast<Status>(ret);
80 }
81
UpdateData(const QueryOption & query,UnifiedData & unifiedData)82 Status UdmfClient::UpdateData(const QueryOption &query, UnifiedData &unifiedData)
83 {
84 DdsTrace trace(
85 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
86 auto service = UdmfServiceClient::GetInstance();
87 if (service == nullptr) {
88 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
89 return E_IPC;
90 }
91 int32_t ret = service->UpdateData(query, unifiedData);
92 if (ret != E_OK) {
93 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
94 }
95 return static_cast<Status>(ret);
96 }
97
DeleteData(const QueryOption & query,std::vector<UnifiedData> & unifiedDataSet)98 Status UdmfClient::DeleteData(const QueryOption &query, std::vector<UnifiedData> &unifiedDataSet)
99 {
100 DdsTrace trace(
101 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
102 auto service = UdmfServiceClient::GetInstance();
103 if (service == nullptr) {
104 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
105 return E_IPC;
106 }
107 int32_t ret = service->DeleteData(query, unifiedDataSet);
108 if (ret != E_OK) {
109 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
110 }
111 return static_cast<Status>(ret);
112 }
113
GetSummary(const QueryOption & query,Summary & summary)114 Status UdmfClient::GetSummary(const QueryOption &query, Summary &summary)
115 {
116 DdsTrace trace(
117 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
118 auto service = UdmfServiceClient::GetInstance();
119 if (service == nullptr) {
120 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
121 return E_IPC;
122 }
123 int32_t ret = service->GetSummary(query, summary);
124 if (ret != E_OK) {
125 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
126 }
127 return static_cast<Status>(ret);
128 }
129
AddPrivilege(const QueryOption & query,Privilege & privilege)130 Status UdmfClient::AddPrivilege(const QueryOption &query, Privilege &privilege)
131 {
132 DdsTrace trace(
133 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
134 auto service = UdmfServiceClient::GetInstance();
135 if (service == nullptr) {
136 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
137 return E_IPC;
138 }
139 int32_t ret = service->AddPrivilege(query, privilege);
140 if (ret != E_OK) {
141 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
142 }
143 return static_cast<Status>(ret);
144 }
145
Sync(const QueryOption & query,const std::vector<std::string> & devices)146 Status UdmfClient::Sync(const QueryOption &query, const std::vector<std::string> &devices)
147 {
148 DdsTrace trace(
149 std::string(TAG) + std::string(__FUNCTION__), TraceSwitch::BYTRACE_ON | TraceSwitch::TRACE_CHAIN_ON);
150 auto service = UdmfServiceClient::GetInstance();
151 if (service == nullptr) {
152 LOG_ERROR(UDMF_CLIENT, "Service unavailable");
153 return E_IPC;
154 }
155 int32_t ret = service->Sync(query, devices);
156 if (ret != E_OK) {
157 LOG_ERROR(UDMF_CLIENT, "failed! ret = %{public}d", ret);
158 }
159 return static_cast<Status>(ret);
160 }
161 } // namespace UDMF
162 } // namespace OHOS