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 #include "firmware_component_table.h"
17
18 namespace OHOS {
19 namespace UpdateEngine {
GetTableName()20 std::string FirmwareComponentTable::GetTableName()
21 {
22 return FIRMWARE_TABLE_COMPONENT;
23 }
24
GetTableCreateSql()25 std::string FirmwareComponentTable::GetTableCreateSql()
26 {
27 return std::string("create table if not exists ")
28 .append(FIRMWARE_TABLE_COMPONENT + " (")
29 .append(COLUMN_ID + " integer PRIMARY KEY autoincrement not null,")
30 .append(COLUMN_COMPONENT_VERSION_ID + " varchar(256),")
31 .append(COLUMN_COMPONENT_VERSION_PACKAGE_TYPE + " integer,")
32 .append(COLUMN_COMPONENT_PACKAGE_INDEX + " integer,")
33 .append(COLUMN_COMPONENT_TARGET_BL_DISPLAY_VERSION_NUMBER + " varchar(256),")
34 .append(COLUMN_COMPONENT_TARGET_BL_VERSION_NUMBER + " varchar(256),")
35 .append(COLUMN_COMPONENT_VERSION_NUMBER + " varchar(256),")
36 .append(COLUMN_COMPONENT_BL_VERSION_INFO + " varchar(1024),")
37 .append(COLUMN_COMPONENT_DESCRIPT_PACKAGE_ID + " varchar(128),")
38 .append(COLUMN_COMPONENT_COMPONENT_ID + " varchar(128),")
39 .append(COLUMN_COMPONENT_CHANGELOG_URL + " varchar(512),")
40 .append(COLUMN_COMPONENT_BL_VERSION_TYPE + " integer,")
41 .append(COLUMN_COMPONENT_IS_NEED_RESTART + " integer,")
42 .append(COLUMN_COMPONENT_PATCH_TYPE + " integer,")
43 .append(COLUMN_COMPONENT_DOWNLOAD_URL + " varchar(512),")
44 .append(COLUMN_COMPONENT_RESERVE_URL + " varchar(512),")
45 .append(COLUMN_COMPONENT_STORAGE_TYPE + " integer,")
46 .append(COLUMN_COMPONENT_VERIFY_INFO + " varchar(256),")
47 .append(COLUMN_COMPONENT_SIZE + " bigint,")
48 .append(COLUMN_COMPONENT_FILENAME + " varchar(256),")
49 .append(COLUMN_COMPONENT_SPATH + " varchar(256),")
50 .append(COLUMN_COMPONENT_STATUS + " integer,")
51 .append(COLUMN_COMPONENT_PROGRESS + " integer,")
52 .append(COLUMN_COMPONENT_EXTENDS1 + " varchar(256),")
53 .append(COLUMN_COMPONENT_EXTENDS2 + " varchar(256),")
54 .append(COLUMN_COMPONENT_EXTENDS3 + " varchar(256),")
55 .append(COLUMN_COMPONENT_EXTENDS4 + " varchar(256),")
56 .append(COLUMN_COMPONENT_EXTENDS5 + " varchar(256),")
57 .append(COLUMN_COMPONENT_EXTENDS6 + " varchar(256)")
58 .append(")");
59 }
60
ParseDbValue(ResultSet * resultSet,FirmwareComponent & value)61 void FirmwareComponentTable::ParseDbValue(ResultSet *resultSet, FirmwareComponent &value)
62 {
63 GetColumnValue(resultSet, COLUMN_ID, value.id);
64 GetColumnValue(resultSet, COLUMN_COMPONENT_VERSION_ID, value.versionId);
65 int32_t versionPackageType = CAST_INT(PackageType::DYNAMIC);
66 GetColumnValue(resultSet, COLUMN_COMPONENT_VERSION_PACKAGE_TYPE, versionPackageType);
67 value.versionPackageType = static_cast<PackageType>(versionPackageType);
68 GetColumnValue(resultSet, COLUMN_COMPONENT_PACKAGE_INDEX, value.packageIndex);
69 GetColumnValue(resultSet, COLUMN_COMPONENT_TARGET_BL_DISPLAY_VERSION_NUMBER, value.targetBlDisplayVersionNumber);
70 GetColumnValue(resultSet, COLUMN_COMPONENT_TARGET_BL_VERSION_NUMBER, value.targetBlVersionNumber);
71 GetColumnValue(resultSet, COLUMN_COMPONENT_VERSION_NUMBER, value.versionNumber);
72 GetColumnValue(resultSet, COLUMN_COMPONENT_BL_VERSION_INFO, value.blVersionInfo);
73 GetColumnValue(resultSet, COLUMN_COMPONENT_DESCRIPT_PACKAGE_ID, value.descriptPackageId);
74 GetColumnValue(resultSet, COLUMN_COMPONENT_COMPONENT_ID, value.componentId);
75 GetColumnValue(resultSet, COLUMN_COMPONENT_CHANGELOG_URL, value.changelogUrl);
76 GetColumnValue(resultSet, COLUMN_COMPONENT_BL_VERSION_TYPE, value.blVersionType);
77 GetColumnValue(resultSet, COLUMN_COMPONENT_IS_NEED_RESTART, value.isNeedRestart);
78 GetColumnValue(resultSet, COLUMN_COMPONENT_PATCH_TYPE, value.patchType);
79 GetColumnValue(resultSet, COLUMN_COMPONENT_DOWNLOAD_URL, value.url);
80 GetColumnValue(resultSet, COLUMN_COMPONENT_RESERVE_URL, value.reserveUrl);
81 GetColumnValue(resultSet, COLUMN_COMPONENT_STORAGE_TYPE, value.storageType);
82 GetColumnValue(resultSet, COLUMN_COMPONENT_VERIFY_INFO, value.verifyInfo);
83 GetColumnValue(resultSet, COLUMN_COMPONENT_SIZE, value.size);
84 GetColumnValue(resultSet, COLUMN_COMPONENT_FILENAME, value.fileName);
85 GetColumnValue(resultSet, COLUMN_COMPONENT_SPATH, value.spath);
86 int32_t status = CAST_INT(UpgradeStatus::INIT);
87 GetColumnValue(resultSet, COLUMN_COMPONENT_STATUS, status);
88 value.status = static_cast<UpgradeStatus>(status);
89 GetColumnValue(resultSet, COLUMN_COMPONENT_PROGRESS, value.progress);
90 }
91
BuildDbValue(const FirmwareComponent & value,NativeRdb::ValuesBucket & dbValue)92 void FirmwareComponentTable::BuildDbValue(const FirmwareComponent &value, NativeRdb::ValuesBucket &dbValue)
93 {
94 PutColumnValue(dbValue, COLUMN_COMPONENT_VERSION_ID, value.versionId);
95 PutColumnValue(dbValue, COLUMN_COMPONENT_VERSION_PACKAGE_TYPE, CAST_INT(value.versionPackageType));
96 PutColumnValue(dbValue, COLUMN_COMPONENT_PACKAGE_INDEX, value.packageIndex);
97 PutColumnValue(dbValue, COLUMN_COMPONENT_TARGET_BL_DISPLAY_VERSION_NUMBER, value.targetBlDisplayVersionNumber);
98 PutColumnValue(dbValue, COLUMN_COMPONENT_TARGET_BL_VERSION_NUMBER, value.targetBlVersionNumber);
99 PutColumnValue(dbValue, COLUMN_COMPONENT_VERSION_NUMBER, value.versionNumber);
100 PutColumnValue(dbValue, COLUMN_COMPONENT_BL_VERSION_INFO, value.blVersionInfo);
101 PutColumnValue(dbValue, COLUMN_COMPONENT_DESCRIPT_PACKAGE_ID, value.descriptPackageId);
102 PutColumnValue(dbValue, COLUMN_COMPONENT_COMPONENT_ID, value.componentId);
103 PutColumnValue(dbValue, COLUMN_COMPONENT_CHANGELOG_URL, value.changelogUrl);
104 PutColumnValue(dbValue, COLUMN_COMPONENT_BL_VERSION_TYPE, value.blVersionType);
105 PutColumnValue(dbValue, COLUMN_COMPONENT_IS_NEED_RESTART, value.isNeedRestart);
106 PutColumnValue(dbValue, COLUMN_COMPONENT_PATCH_TYPE, value.patchType);
107 PutColumnValue(dbValue, COLUMN_COMPONENT_DOWNLOAD_URL, value.url);
108 PutColumnValue(dbValue, COLUMN_COMPONENT_RESERVE_URL, value.reserveUrl);
109 PutColumnValue(dbValue, COLUMN_COMPONENT_STORAGE_TYPE, value.storageType);
110 PutColumnValue(dbValue, COLUMN_COMPONENT_VERIFY_INFO, value.verifyInfo);
111 PutColumnValue(dbValue, COLUMN_COMPONENT_SIZE, value.size);
112 PutColumnValue(dbValue, COLUMN_COMPONENT_FILENAME, value.fileName);
113 PutColumnValue(dbValue, COLUMN_COMPONENT_SPATH, value.spath);
114 PutColumnValue(dbValue, COLUMN_COMPONENT_STATUS, CAST_INT(value.status));
115 PutColumnValue(dbValue, COLUMN_COMPONENT_PROGRESS, value.progress);
116 }
117 } // namespace UpdateEngine
118 } // namespace OHOS