/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef DISTRIBUTED_RDB_RDB_SERVICE_H #define DISTRIBUTED_RDB_RDB_SERVICE_H #include #include #include "result_set.h" #include "rdb_types.h" #include "rdb_notifier.h" #include "distributeddata_relational_store_ipc_interface_code.h" namespace OHOS { namespace DistributedRdb { class RdbService { public: struct Option { int32_t mode; uint32_t seqNum = 0; bool isAsync = false; bool isAutoSync = false; bool isCompensation = false; }; using ResultSet = NativeRdb::ResultSet; inline static constexpr const char *SERVICE_NAME = "relational_store"; virtual std::string ObtainDistributedTableName(const std::string &device, const std::string &table) = 0; virtual int32_t SetDistributedTables( const RdbSyncerParam ¶m, const std::vector &tables, const std::vector &references, bool isRebuild, int32_t type = DISTRIBUTED_DEVICE) = 0; virtual int32_t Sync(const RdbSyncerParam ¶m, const Option &option, const PredicatesMemo &predicates, const AsyncDetail &async) = 0; virtual int32_t Subscribe(const RdbSyncerParam ¶m, const SubscribeOption &option, RdbStoreObserver *observer) = 0; virtual int32_t UnSubscribe(const RdbSyncerParam ¶m, const SubscribeOption &option, RdbStoreObserver *observer) = 0; virtual int32_t RegisterAutoSyncCallback( const RdbSyncerParam ¶m, std::shared_ptr observer) = 0; virtual int32_t UnregisterAutoSyncCallback( const RdbSyncerParam ¶m, std::shared_ptr observer) = 0; virtual std::pair> RemoteQuery(const RdbSyncerParam ¶m, const std::string &device, const std::string &sql, const std::vector &selectionArgs) = 0; virtual int32_t InitNotifier(const RdbSyncerParam ¶m, sptr notifier) = 0; virtual int32_t BeforeOpen(RdbSyncerParam ¶m) = 0; virtual int32_t AfterOpen(const RdbSyncerParam ¶m) = 0; // only use param.storeName_ virtual int32_t Delete(const RdbSyncerParam ¶m) = 0; virtual std::pair> QuerySharingResource( const RdbSyncerParam ¶m, const PredicatesMemo &predicates, const std::vector &columns) = 0; virtual int32_t NotifyDataChange( const RdbSyncerParam ¶m, const RdbChangedData &rdbChangedData, const RdbNotifyConfig &rdbNotifyConfig) = 0; virtual int32_t SetSearchable(const RdbSyncerParam& param, bool isSearchable) = 0; virtual int32_t Disable(const RdbSyncerParam ¶m) = 0; virtual int32_t Enable(const RdbSyncerParam ¶m) = 0; virtual int32_t GetPassword(const RdbSyncerParam ¶m, std::vector &password) = 0; virtual std::pair LockCloudContainer(const RdbSyncerParam ¶m) = 0; virtual int32_t UnlockCloudContainer(const RdbSyncerParam ¶m) = 0; virtual int32_t GetDebugInfo(const RdbSyncerParam ¶m, std::map &debugInfo) = 0; }; } } // namespace OHOS::DistributedRdb #endif