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 
16 #ifndef RDB_DATA_ABILITY_UTILS_H
17 #define RDB_DATA_ABILITY_UTILS_H
18 
19 #include <list>
20 #include <memory>
21 #include <string>
22 #include <vector>
23 
24 #include "result_set.h"
25 #include "data_ability_predicates.h"
26 #include "datashare_predicates.h"
27 #include "datashare_values_bucket.h"
28 #include "values_bucket.h"
29 
30 namespace OHOS {
31 namespace DataShare {
32 class ResultSet;
33 }
34 namespace NativeRdb {
35 class AbsSharedResultSet;
36 }
37 namespace RdbDataAbilityAdapter {
38 /**
39  * The RdbDataAbilityUtils class of RDB.
40  */
41 class API_EXPORT RdbDataAbilityUtils {
42 public:
43     /**
44      * @brief Use ValuesBucket replace NativeRdb::ValuesBucket namespace.
45      */
46     using ValuesBucket = NativeRdb::ValuesBucket;
47 
48     /**
49      * @brief Use DataShareValuesBucket replace DataShare::DataShareValuesBucket namespace.
50      */
51     using DataShareValuesBucket = DataShare::DataShareValuesBucket;
52 
53     /**
54      * @brief Use DSResultSet replace DataShare::ResultSet namespace.
55      */
56     using DSResultSet = DataShare::ResultSet;
57 
58     /**
59      * @brief Use DataSharePredicates replace DataShare::DataSharePredicates namespace.
60      */
61     using DataSharePredicates = DataShare::DataSharePredicates;
62 
63     /**
64      * @brief Use DataAbilityPredicates replace NativeRdb::DataAbilityPredicates namespace.
65      */
66     using DataAbilityPredicates = NativeRdb::DataAbilityPredicates;
67 
68     /**
69      * @brief Use AbsSharedResultSet replace NativeRdb::AbsSharedResultSet namespace.
70      */
71     using AbsSharedResultSet = NativeRdb::AbsSharedResultSet;
72 
73     /**
74      * @brief Convert NativeRdb::ValuesBucket to DataShare::DataShareValuesBucket.
75      */
76     API_EXPORT static DataShareValuesBucket ToDataShareValuesBucket(ValuesBucket valuesBucket);
77 
78     /**
79      * @brief Convert NativeRdb::DataAbilityPredicates to DataShare::DataSharePredicates.
80      */
81     API_EXPORT static DataSharePredicates ToDataSharePredicates(const DataAbilityPredicates &predicates);
82 
83     /**
84      * @brief Convert NDataShare::ResultSet to NativeRdb::AbsSharedResultSet.
85      */
86     API_EXPORT static std::shared_ptr<AbsSharedResultSet> ToAbsSharedResultSet(
87         std::shared_ptr<DSResultSet> resultSet);
88 
89 private:
90     RdbDataAbilityUtils();
91     ~RdbDataAbilityUtils();
92 };
93 } // namespace RdbDataAbilityAdapter
94 } // namespace OHOS
95 #endif // RDB_DATA_ABILITY_UTILS_H
96 
97