125c1cde8Sopenharmony_ci/* 225c1cde8Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 325c1cde8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 425c1cde8Sopenharmony_ci * you may not use this file except in compliance with the License. 525c1cde8Sopenharmony_ci * You may obtain a copy of the License at 625c1cde8Sopenharmony_ci * 725c1cde8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 825c1cde8Sopenharmony_ci * 925c1cde8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1025c1cde8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1125c1cde8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1225c1cde8Sopenharmony_ci * See the License for the specific language governing permissions and 1325c1cde8Sopenharmony_ci * limitations under the License. 1425c1cde8Sopenharmony_ci */ 1525c1cde8Sopenharmony_ci 1625c1cde8Sopenharmony_ci#ifndef DATA_STORAGE_GLOBAL_PARAMS_ABILITY_H 1725c1cde8Sopenharmony_ci#define DATA_STORAGE_GLOBAL_PARAMS_ABILITY_H 1825c1cde8Sopenharmony_ci 1925c1cde8Sopenharmony_ci#include <functional> 2025c1cde8Sopenharmony_ci 2125c1cde8Sopenharmony_ci#include "__mutex_base" 2225c1cde8Sopenharmony_ci#include "ability.h" 2325c1cde8Sopenharmony_ci#include "ability_lifecycle.h" 2425c1cde8Sopenharmony_ci#include "abs_shared_result_set.h" 2525c1cde8Sopenharmony_ci#include "datashare_ext_ability.h" 2625c1cde8Sopenharmony_ci#include "datashare_ext_ability_context.h" 2725c1cde8Sopenharmony_ci#include "datashare_values_bucket.h" 2825c1cde8Sopenharmony_ci#include "iosfwd" 2925c1cde8Sopenharmony_ci#include "map" 3025c1cde8Sopenharmony_ci#include "memory" 3125c1cde8Sopenharmony_ci#include "rdb_global_params_helper.h" 3225c1cde8Sopenharmony_ci#include "rdb_predicates.h" 3325c1cde8Sopenharmony_ci#include "string" 3425c1cde8Sopenharmony_ci#include "vector" 3525c1cde8Sopenharmony_ci#include "want.h" 3625c1cde8Sopenharmony_ci 3725c1cde8Sopenharmony_cinamespace OHOS { 3825c1cde8Sopenharmony_cinamespace NativeRdb { 3925c1cde8Sopenharmony_ciclass AbsRdbPredicates; 4025c1cde8Sopenharmony_ciclass ResultSet; 4125c1cde8Sopenharmony_ciclass DataAbilityPredicates; 4225c1cde8Sopenharmony_ciclass ValuesBucket; 4325c1cde8Sopenharmony_ci} 4425c1cde8Sopenharmony_cinamespace Telephony { 4525c1cde8Sopenharmony_cienum class GlobalParamsUriType { 4625c1cde8Sopenharmony_ci UNKNOW, 4725c1cde8Sopenharmony_ci ECC_LIST, 4825c1cde8Sopenharmony_ci NUMBER_MATCHS 4925c1cde8Sopenharmony_ci}; 5025c1cde8Sopenharmony_ci 5125c1cde8Sopenharmony_ciclass GlobalParamsAbility : public DataShare::DataShareExtAbility { 5225c1cde8Sopenharmony_cipublic: 5325c1cde8Sopenharmony_ci GlobalParamsAbility(); 5425c1cde8Sopenharmony_ci virtual ~GlobalParamsAbility() override; 5525c1cde8Sopenharmony_ci static GlobalParamsAbility* Create(); 5625c1cde8Sopenharmony_ci void DoInit(); 5725c1cde8Sopenharmony_ci sptr<IRemoteObject> OnConnect(const AAFwk::Want &want) override; 5825c1cde8Sopenharmony_ci virtual void OnStart(const AppExecFwk::Want &want) override; 5925c1cde8Sopenharmony_ci virtual int Insert(const Uri &uri, const DataShare::DataShareValuesBucket &value) override; 6025c1cde8Sopenharmony_ci virtual int Update(const Uri &uri, const DataShare::DataSharePredicates &predicates, 6125c1cde8Sopenharmony_ci const DataShare::DataShareValuesBucket &value) override; 6225c1cde8Sopenharmony_ci virtual int Delete(const Uri &uri, const DataShare::DataSharePredicates &predicates) override; 6325c1cde8Sopenharmony_ci virtual std::shared_ptr<DataShare::DataShareResultSet> Query(const Uri &uri, 6425c1cde8Sopenharmony_ci const DataShare::DataSharePredicates &predicates, std::vector<std::string> &columns, 6525c1cde8Sopenharmony_ci DataShare::DatashareBusinessError &businessError) override; 6625c1cde8Sopenharmony_ci virtual std::string GetType(const Uri &uri) override; 6725c1cde8Sopenharmony_ci virtual int OpenFile(const Uri &uri, const std::string &mode) override; 6825c1cde8Sopenharmony_ci 6925c1cde8Sopenharmony_ciprivate: 7025c1cde8Sopenharmony_ci /** 7125c1cde8Sopenharmony_ci * Parse Uri Type 7225c1cde8Sopenharmony_ci * 7325c1cde8Sopenharmony_ci * @param uri Resource address 7425c1cde8Sopenharmony_ci * @return return GlobalParamsUriType 7525c1cde8Sopenharmony_ci */ 7625c1cde8Sopenharmony_ci GlobalParamsUriType ParseUriType(Uri &uri); 7725c1cde8Sopenharmony_ci 7825c1cde8Sopenharmony_ci /** 7925c1cde8Sopenharmony_ci * Convert DataSharePredicates to RdbPredicates 8025c1cde8Sopenharmony_ci * 8125c1cde8Sopenharmony_ci * @param tableName table name of the predicates 8225c1cde8Sopenharmony_ci * @param predicates DataSharePredicates 8325c1cde8Sopenharmony_ci */ 8425c1cde8Sopenharmony_ci OHOS::NativeRdb::RdbPredicates ConvertPredicates( 8525c1cde8Sopenharmony_ci const std::string &tableName, const DataShare::DataSharePredicates &predicates); 8625c1cde8Sopenharmony_ci 8725c1cde8Sopenharmony_ci /** 8825c1cde8Sopenharmony_ci * Check whether the initialization succeeds 8925c1cde8Sopenharmony_ci * 9025c1cde8Sopenharmony_ci * @return true : succeed ,false : failed 9125c1cde8Sopenharmony_ci */ 9225c1cde8Sopenharmony_ci bool IsInitOk(); 9325c1cde8Sopenharmony_ci 9425c1cde8Sopenharmony_ciprivate: 9525c1cde8Sopenharmony_ci RdbGlobalParamsHelper helper_; 9625c1cde8Sopenharmony_ci std::mutex lock_; 9725c1cde8Sopenharmony_ci bool initDatabaseDir_ = false; 9825c1cde8Sopenharmony_ci bool initRdbStore_ = false; 9925c1cde8Sopenharmony_ci}; 10025c1cde8Sopenharmony_ci} // namespace Telephony 10125c1cde8Sopenharmony_ci} // namespace OHOS 10225c1cde8Sopenharmony_ci#endif // DATA_STORAGE_GLOBAL_PARAMS_ABILITY_H