• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef DISTRIBUTEDDATAFWK_IDATA_SHARE_SERVICE_H
17 #define DISTRIBUTEDDATAFWK_IDATA_SHARE_SERVICE_H
18 
19 #include <iremote_broker.h>
20 #include <string>
21 
22 #include "datashare_predicates.h"
23 #include "datashare_result_set.h"
24 #include "datashare_values_bucket.h"
25 #include "datashare_template.h"
26 #include "data_proxy_observer.h"
27 #include "iremote_object.h"
28 #include "dataproxy_handle_common.h"
29 
30 namespace OHOS::DataShare {
31 class IDataShareService {
32 public:
33     static constexpr int DATA_SHARE_CMD_SYSTEM_CODE = 100;
34     enum {
35         DATA_SHARE_SERVICE_CMD_QUERY,
36         DATA_SHARE_SERVICE_CMD_ADD_TEMPLATE,
37         DATA_SHARE_SERVICE_CMD_DEL_TEMPLATE,
38         DATA_SHARE_SERVICE_CMD_PUBLISH,
39         DATA_SHARE_SERVICE_CMD_GET_DATA,
40         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_RDB,
41         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_RDB,
42         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_RDB,
43         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_RDB,
44         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_PUBLISHED,
45         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_PUBLISHED,
46         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_PUBLISHED,
47         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_PUBLISHED,
48         DATA_SHARE_SERVICE_CMD_NOTIFY,
49         DATA_SHARE_SERVICE_CMD_NOTIFY_OBSERVERS,
50         DATA_SHARE_SERVICE_CMD_SET_SILENT_SWITCH,
51         DATA_SHARE_SERVICE_CMD_GET_SILENT_PROXY_STATUS,
52         DATA_SHARE_SERVICE_CMD_REGISTER_OBSERVER,
53         DATA_SHARE_SERVICE_CMD_UNREGISTER_OBSERVER,
54         DATA_SHARE_SERVICE_CMD_INSERTEX,
55         DATA_SHARE_SERVICE_CMD_DELETEEX,
56         DATA_SHARE_SERVICE_CMD_UPDATEEX,
57         DATA_SHARE_SERVICE_CMD_PROXY_PUBLISH,
58         DATA_SHARE_SERVICE_CMD_PROXY_DELETE,
59         DATA_SHARE_SERVICE_CMD_PROXY_GET,
60         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_PROXY_DATA,
61         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_PROXY_DATA,
62         DATA_SHARE_SERVICE_CMD_MAX,
63         DATA_SHARE_SERVICE_CMD_QUERY_SYSTEM = DATA_SHARE_CMD_SYSTEM_CODE,
64         DATA_SHARE_SERVICE_CMD_ADD_TEMPLATE_SYSTEM,
65         DATA_SHARE_SERVICE_CMD_DEL_TEMPLATE_SYSTEM,
66         DATA_SHARE_SERVICE_CMD_PUBLISH_SYSTEM,
67         DATA_SHARE_SERVICE_CMD_GET_DATA_SYSTEM,
68         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_RDB_SYSTEM,
69         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_RDB_SYSTEM,
70         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_RDB_SYSTEM,
71         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_RDB_SYSTEM,
72         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_PUBLISHED_SYSTEM,
73         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_PUBLISHED_SYSTEM,
74         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_PUBLISHED_SYSTEM,
75         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_PUBLISHED_SYSTEM,
76         DATA_SHARE_SERVICE_CMD_NOTIFY_SYSTEM,
77         DATA_SHARE_SERVICE_CMD_NOTIFY_OBSERVERS_SYSTEM,
78         DATA_SHARE_SERVICE_CMD_SET_SILENT_SWITCH_SYSTEM,
79         DATA_SHARE_SERVICE_CMD_GET_SILENT_PROXY_STATUS_SYSTEM,
80         DATA_SHARE_SERVICE_CMD_REGISTER_OBSERVER_SYSTEM,
81         DATA_SHARE_SERVICE_CMD_UNREGISTER_OBSERVER_SYSTEM,
82         DATA_SHARE_SERVICE_CMD_INSERTEX_SYSTEM,
83         DATA_SHARE_SERVICE_CMD_DELETEEX_SYSTEM,
84         DATA_SHARE_SERVICE_CMD_UPDATEEX_SYSTEM,
85         DATA_SHARE_SERVICE_CMD_MAX_SYSTEM
86     };
87 
88     enum { DATA_SHARE_ERROR = -1, DATA_SHARE_OK = 0 };
89     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.DataShare.IDataShareService");
90 
91     virtual std::shared_ptr<DataShareResultSet> Query(const std::string &uri, const std::string &extUri,
92         const DataSharePredicates &predicates, const std::vector<std::string> &columns, int &errCode) = 0;
93     virtual int32_t AddTemplate(const std::string &uri, const int64_t subscriberId, const Template &tplt) = 0;
94     virtual int32_t DelTemplate(const std::string &uri, const int64_t subscriberId) = 0;
95     virtual std::vector<OperationResult> Publish(const Data &data, const std::string &bundleNameOfProvider) = 0;
96     virtual Data GetData(const std::string &bundleNameOfProvider, int &errorCode) = 0;
97     virtual std::vector<OperationResult> SubscribeRdbData(
98         const std::vector<std::string> &uris, const TemplateId &id, const sptr<IDataProxyRdbObserver> observer) = 0;
99     virtual std::vector<OperationResult> UnsubscribeRdbData(
100         const std::vector<std::string> &uris, const TemplateId &id) = 0;
101     virtual std::vector<OperationResult> EnableRdbSubs(
102         const std::vector<std::string> &uris, const TemplateId &id) = 0;
103     virtual std::vector<OperationResult> DisableRdbSubs(
104         const std::vector<std::string> &uris, const TemplateId &id) = 0;
105     virtual std::vector<OperationResult> SubscribePublishedData(const std::vector<std::string> &uris,
106         const int64_t subscriberId, const sptr<IDataProxyPublishedDataObserver> observer) = 0;
107     virtual std::vector<OperationResult> UnsubscribePublishedData(const std::vector<std::string> &uris,
108         const int64_t subscriberId) = 0;
109     virtual std::vector<OperationResult> EnablePubSubs(const std::vector<std::string> &uris,
110         const int64_t subscriberId) = 0;
111     virtual std::vector<OperationResult> DisablePubSubs(const std::vector<std::string> &uris,
112         const int64_t subscriberId) = 0;
113     virtual void OnConnectDone() = 0;
114     virtual void NotifyObserver(const std::string &uri) = 0;
115     virtual int32_t EnableSilentProxy(const std::string &uri, bool enable) = 0;
116     virtual int32_t GetSilentProxyStatus(const std::string &uri, bool isCreateHelper = true) = 0;
117     virtual int32_t RegisterObserver(const std::string &uri, const sptr<OHOS::IRemoteObject> &remoteObj) = 0;
118     virtual int32_t UnregisterObserver(const std::string &uri,
119         const sptr<OHOS::IRemoteObject> &remoteObj) = 0;
120     virtual std::pair<int32_t, int32_t> InsertEx(
121         const std::string &uri, const std::string &extUri, const DataShareValuesBucket &valuesBucket) = 0;
122     virtual std::pair<int32_t, int32_t> UpdateEx(const std::string &uri, const std::string &extUri,
123         const DataSharePredicates &predicate, const DataShareValuesBucket &valuesBucket) = 0;
124     virtual std::pair<int32_t, int32_t> DeleteEx(const std::string &uri, const std::string &extUri,
125         const DataSharePredicates &predicate) = 0;
126     virtual std::vector<DataProxyResult> PublishProxyData(const std::vector<DataShareProxyData> &proxyData,
127         const DataProxyConfig &proxyConfig) = 0;
128     virtual std::vector<DataProxyResult> DeleteProxyData(const std::vector<std::string> &uris,
129         const DataProxyConfig &proxyConfig) = 0;
130     virtual std::vector<DataProxyGetResult> GetProxyData(const std::vector<std::string> &uris,
131         const DataProxyConfig &proxyConfig) = 0;
132     virtual std::vector<DataProxyResult> SubscribeProxyData(const std::vector<std::string> &uris,
133         const DataProxyConfig &proxyConfig, const sptr<IProxyDataObserver> observer) = 0;
134     virtual std::vector<DataProxyResult> UnsubscribeProxyData(const std::vector<std::string> &uris,
135         const DataProxyConfig &proxyConfig) = 0;
136     };
137 } // namespace OHOS::DataShare
138 #endif // DISTRIBUTEDDATAFWK_IDATA_SHARE_SERVICE_H
139