• 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 
29 namespace OHOS::DataShare {
30 class IDataShareService {
31 public:
32     static constexpr int DATA_SHARE_CMD_SYSTEM_CODE = 100;
33     enum {
34         DATA_SHARE_SERVICE_CMD_QUERY,
35         DATA_SHARE_SERVICE_CMD_ADD_TEMPLATE,
36         DATA_SHARE_SERVICE_CMD_DEL_TEMPLATE,
37         DATA_SHARE_SERVICE_CMD_PUBLISH,
38         DATA_SHARE_SERVICE_CMD_GET_DATA,
39         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_RDB,
40         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_RDB,
41         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_RDB,
42         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_RDB,
43         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_PUBLISHED,
44         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_PUBLISHED,
45         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_PUBLISHED,
46         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_PUBLISHED,
47         DATA_SHARE_SERVICE_CMD_NOTIFY,
48         DATA_SHARE_SERVICE_CMD_NOTIFY_OBSERVERS,
49         DATA_SHARE_SERVICE_CMD_SET_SILENT_SWITCH,
50         DATA_SHARE_SERVICE_CMD_GET_SILENT_PROXY_STATUS,
51         DATA_SHARE_SERVICE_CMD_REGISTER_OBSERVER,
52         DATA_SHARE_SERVICE_CMD_UNREGISTER_OBSERVER,
53         DATA_SHARE_SERVICE_CMD_INSERTEX,
54         DATA_SHARE_SERVICE_CMD_DELETEEX,
55         DATA_SHARE_SERVICE_CMD_UPDATEEX,
56         DATA_SHARE_SERVICE_CMD_MAX,
57         DATA_SHARE_SERVICE_CMD_QUERY_SYSTEM = DATA_SHARE_CMD_SYSTEM_CODE,
58         DATA_SHARE_SERVICE_CMD_ADD_TEMPLATE_SYSTEM,
59         DATA_SHARE_SERVICE_CMD_DEL_TEMPLATE_SYSTEM,
60         DATA_SHARE_SERVICE_CMD_PUBLISH_SYSTEM,
61         DATA_SHARE_SERVICE_CMD_GET_DATA_SYSTEM,
62         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_RDB_SYSTEM,
63         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_RDB_SYSTEM,
64         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_RDB_SYSTEM,
65         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_RDB_SYSTEM,
66         DATA_SHARE_SERVICE_CMD_SUBSCRIBE_PUBLISHED_SYSTEM,
67         DATA_SHARE_SERVICE_CMD_UNSUBSCRIBE_PUBLISHED_SYSTEM,
68         DATA_SHARE_SERVICE_CMD_ENABLE_SUBSCRIBE_PUBLISHED_SYSTEM,
69         DATA_SHARE_SERVICE_CMD_DISABLE_SUBSCRIBE_PUBLISHED_SYSTEM,
70         DATA_SHARE_SERVICE_CMD_NOTIFY_SYSTEM,
71         DATA_SHARE_SERVICE_CMD_NOTIFY_OBSERVERS_SYSTEM,
72         DATA_SHARE_SERVICE_CMD_SET_SILENT_SWITCH_SYSTEM,
73         DATA_SHARE_SERVICE_CMD_GET_SILENT_PROXY_STATUS_SYSTEM,
74         DATA_SHARE_SERVICE_CMD_REGISTER_OBSERVER_SYSTEM,
75         DATA_SHARE_SERVICE_CMD_UNREGISTER_OBSERVER_SYSTEM,
76         DATA_SHARE_SERVICE_CMD_INSERTEX_SYSTEM,
77         DATA_SHARE_SERVICE_CMD_DELETEEX_SYSTEM,
78         DATA_SHARE_SERVICE_CMD_UPDATEEX_SYSTEM,
79         DATA_SHARE_SERVICE_CMD_MAX_SYSTEM
80     };
81 
82     enum { DATA_SHARE_ERROR = -1, DATA_SHARE_OK = 0 };
83     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.DataShare.IDataShareService");
84 
85     virtual std::shared_ptr<DataShareResultSet> Query(const std::string &uri, const std::string &extUri,
86         const DataSharePredicates &predicates, const std::vector<std::string> &columns, int &errCode) = 0;
87     virtual int32_t AddTemplate(const std::string &uri, const int64_t subscriberId, const Template &tplt) = 0;
88     virtual int32_t DelTemplate(const std::string &uri, const int64_t subscriberId) = 0;
89     virtual std::vector<OperationResult> Publish(const Data &data, const std::string &bundleNameOfProvider) = 0;
90     virtual Data GetData(const std::string &bundleNameOfProvider, int &errorCode) = 0;
91     virtual std::vector<OperationResult> SubscribeRdbData(
92         const std::vector<std::string> &uris, const TemplateId &id, const sptr<IDataProxyRdbObserver> observer) = 0;
93     virtual std::vector<OperationResult> UnsubscribeRdbData(
94         const std::vector<std::string> &uris, const TemplateId &id) = 0;
95     virtual std::vector<OperationResult> EnableRdbSubs(
96         const std::vector<std::string> &uris, const TemplateId &id) = 0;
97     virtual std::vector<OperationResult> DisableRdbSubs(
98         const std::vector<std::string> &uris, const TemplateId &id) = 0;
99     virtual std::vector<OperationResult> SubscribePublishedData(const std::vector<std::string> &uris,
100         const int64_t subscriberId, const sptr<IDataProxyPublishedDataObserver> observer) = 0;
101     virtual std::vector<OperationResult> UnsubscribePublishedData(const std::vector<std::string> &uris,
102         const int64_t subscriberId) = 0;
103     virtual std::vector<OperationResult> EnablePubSubs(const std::vector<std::string> &uris,
104         const int64_t subscriberId) = 0;
105     virtual std::vector<OperationResult> DisablePubSubs(const std::vector<std::string> &uris,
106         const int64_t subscriberId) = 0;
107     virtual void OnConnectDone() = 0;
108     virtual void NotifyObserver(const std::string &uri) = 0;
109     virtual int32_t EnableSilentProxy(const std::string &uri, bool enable) = 0;
110     virtual int32_t GetSilentProxyStatus(const std::string &uri, bool isCreateHelper = true) = 0;
111     virtual int32_t RegisterObserver(const std::string &uri, const sptr<OHOS::IRemoteObject> &remoteObj) = 0;
112     virtual int32_t UnregisterObserver(const std::string &uri,
113         const sptr<OHOS::IRemoteObject> &remoteObj) = 0;
114     virtual std::pair<int32_t, int32_t> InsertEx(
115         const std::string &uri, const std::string &extUri, const DataShareValuesBucket &valuesBucket) = 0;
116     virtual std::pair<int32_t, int32_t> UpdateEx(const std::string &uri, const std::string &extUri,
117         const DataSharePredicates &predicate, const DataShareValuesBucket &valuesBucket) = 0;
118     virtual std::pair<int32_t, int32_t> DeleteEx(const std::string &uri, const std::string &extUri,
119         const DataSharePredicates &predicate) = 0;
120 };
121 } // namespace OHOS::DataShare
122 #endif // DISTRIBUTEDDATAFWK_IDATA_SHARE_SERVICE_H
123