18e745fdaSopenharmony_ci/* 28e745fdaSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 38e745fdaSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48e745fdaSopenharmony_ci * you may not use this file except in compliance with the License. 58e745fdaSopenharmony_ci * You may obtain a copy of the License at 68e745fdaSopenharmony_ci * 78e745fdaSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88e745fdaSopenharmony_ci * 98e745fdaSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108e745fdaSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118e745fdaSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128e745fdaSopenharmony_ci * See the License for the specific language governing permissions and 138e745fdaSopenharmony_ci * limitations under the License. 148e745fdaSopenharmony_ci */ 158e745fdaSopenharmony_ci 168e745fdaSopenharmony_ci#ifndef VPN_DATABASE_HELPER_H 178e745fdaSopenharmony_ci#define VPN_DATABASE_HELPER_H 188e745fdaSopenharmony_ci 198e745fdaSopenharmony_ci#include <climits> 208e745fdaSopenharmony_ci#include <functional> 218e745fdaSopenharmony_ci#include <string> 228e745fdaSopenharmony_ci 238e745fdaSopenharmony_ci#include "ipsecvpn_config.h" 248e745fdaSopenharmony_ci#include "l2tpvpn_config.h" 258e745fdaSopenharmony_ci#include "rdb_common.h" 268e745fdaSopenharmony_ci#include "rdb_errno.h" 278e745fdaSopenharmony_ci#include "rdb_helper.h" 288e745fdaSopenharmony_ci#include "rdb_open_callback.h" 298e745fdaSopenharmony_ci#include "rdb_predicates.h" 308e745fdaSopenharmony_ci#include "rdb_store.h" 318e745fdaSopenharmony_ci#include "result_set.h" 328e745fdaSopenharmony_ci#include "vpn_data_bean.h" 338e745fdaSopenharmony_ci 348e745fdaSopenharmony_cinamespace OHOS { 358e745fdaSopenharmony_cinamespace NetManagerStandard { 368e745fdaSopenharmony_ciclass VpnDatabaseHelper { 378e745fdaSopenharmony_cipublic: 388e745fdaSopenharmony_ci static VpnDatabaseHelper &GetInstance(); 398e745fdaSopenharmony_ci int32_t InsertOrUpdateData(const sptr<VpnDataBean> &vpnBean); 408e745fdaSopenharmony_ci int32_t QueryVpnData(sptr<VpnDataBean> &vpnBean, const std::string &vpnUuid); 418e745fdaSopenharmony_ci int32_t QueryAllData(std::vector<SysVpnConfig> &infos, const int32_t userId); 428e745fdaSopenharmony_ci int32_t DeleteVpnData(const std::string &vpnUuid); 438e745fdaSopenharmony_ci 448e745fdaSopenharmony_ciprivate: 458e745fdaSopenharmony_ci VpnDatabaseHelper(); 468e745fdaSopenharmony_ci ~VpnDatabaseHelper() = default; 478e745fdaSopenharmony_ci int32_t InsertData(const sptr<VpnDataBean> &vpnBean); 488e745fdaSopenharmony_ci int32_t UpdateData(const sptr<VpnDataBean> &vpnBean); 498e745fdaSopenharmony_ci bool IsVpnInfoExists(const std::string &vpnId); 508e745fdaSopenharmony_ci void GetVpnDataFromResultSet(const std::shared_ptr<OHOS::NativeRdb::ResultSet> &queryResultSet, 518e745fdaSopenharmony_ci sptr<VpnDataBean> &vpnBean); 528e745fdaSopenharmony_ci void BindVpnData(NativeRdb::ValuesBucket &values, const sptr<VpnDataBean> &info); 538e745fdaSopenharmony_ci std::shared_ptr<OHOS::NativeRdb::RdbStore> store_ = nullptr; 548e745fdaSopenharmony_ci}; 558e745fdaSopenharmony_ci 568e745fdaSopenharmony_ciclass VpnDataBaseCallBack : public OHOS::NativeRdb::RdbOpenCallback { 578e745fdaSopenharmony_cipublic: 588e745fdaSopenharmony_ci int32_t OnCreate(OHOS::NativeRdb::RdbStore &rdbStore) override; 598e745fdaSopenharmony_ci int32_t OnUpgrade(OHOS::NativeRdb::RdbStore &rdbStore, int32_t oldVersion, int32_t newVersion) override; 608e745fdaSopenharmony_ci int32_t OnDowngrade(OHOS::NativeRdb::RdbStore &rdbStore, int32_t currentVersion, int32_t targetVersion) override; 618e745fdaSopenharmony_ci}; 628e745fdaSopenharmony_ci} // namespace NetManagerStandard 638e745fdaSopenharmony_ci} // namespace OHOS 648e745fdaSopenharmony_ci 658e745fdaSopenharmony_ci#endif // VPN_DATABASE_HELPER_H 66