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 OHOS_CLOUD_SYNC_DATA_SYNCER_RDB_COL_H 17 #define OHOS_CLOUD_SYNC_DATA_SYNCER_RDB_COL_H 18 19 #include <set> 20 #include <string> 21 22 namespace OHOS { 23 namespace FileManagement { 24 namespace CloudSync { 25 /* basic */ 26 const std::string DATA_SYNCER_ID = "dataSyncerId"; 27 const std::string USER_ID = "userId"; 28 const std::string BUNDLE_NAME = "bundleName"; 29 const std::string SYNC_STATE = "syncState"; 30 const std::string LAST_SYNC_TIME = "lastSyncTime"; 31 const std::string DATA_SYNCER_UNIQUE_ID = "dataSyncerUniqueId"; 32 const std::string SYNC_ERROR_TYPE = "errorType"; 33 34 const std::string DATA_SYNCER_TABLE = "DataSyncers"; 35 36 const std::string DATA_SYNCER_UNIQUE_INDEX = "DataSyncersUniqueIndex"; 37 38 const std::string SYNC_STATE_FAILED = "2"; 39 const std::string SYNC_STATE_SUCCEED = "3"; 40 const std::string CLOUD_SYNC_STATE_STOPPED = "5"; 41 const std::string CLOUD_SYNC_STATE_COMPLETED = "4"; 42 43 const std::string CREATE_DATA_SYNCER_TABLE = "CREATE TABLE IF NOT EXISTS " + 44 DATA_SYNCER_TABLE + " (" + 45 DATA_SYNCER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 46 USER_ID + " INT, " + 47 BUNDLE_NAME + " TEXT, " + 48 SYNC_STATE + " INT DEFAULT 0, " + 49 LAST_SYNC_TIME + " BIGINT DEFAULT 0, " + 50 DATA_SYNCER_UNIQUE_ID + " TEXT, " + 51 SYNC_ERROR_TYPE + " INT DEFAULT 0)"; 52 53 const std::string CREATE_DATA_SYNCER_UNIQUE_INDEX = 54 "CREATE UNIQUE INDEX IF NOT EXISTS " + DATA_SYNCER_UNIQUE_INDEX + 55 " ON " + DATA_SYNCER_TABLE + " (" + DATA_SYNCER_UNIQUE_ID + ")"; 56 57 const std::string CREATE_DATA_SYNCER_ERROR_TYPE = "ALTER TABLE " + DATA_SYNCER_TABLE + 58 " ADD COLUMN " + SYNC_ERROR_TYPE + " INT DEFAULT 0"; 59 60 const std::string UPDATE_CLOUD_SYNC_STATE = "UPDATE " + DATA_SYNCER_TABLE + 61 " SET " + SYNC_STATE + " = CASE WHEN " + SYNC_STATE + " = " + 62 SYNC_STATE_FAILED + " THEN " + CLOUD_SYNC_STATE_STOPPED + 63 " WHEN " + SYNC_STATE + " = " + SYNC_STATE_SUCCEED + " THEN " + CLOUD_SYNC_STATE_COMPLETED + 64 " ELSE " + SYNC_STATE + " END " + " WHERE " + SYNC_STATE + 65 " IN (" + SYNC_STATE_FAILED + ", " + SYNC_STATE_SUCCEED + ")"; 66 67 const std::set<std::string> DATA_SYNCER_COL = { 68 DATA_SYNCER_ID, USER_ID, BUNDLE_NAME, SYNC_STATE, LAST_SYNC_TIME, DATA_SYNCER_UNIQUE_ID, SYNC_ERROR_TYPE 69 }; 70 71 const std::string EL1_CLOUDFILE_DIR = "/data/service/el1/public/cloudfile"; 72 const std::string DATA_SYNCER_DB = "DataSyncers.db"; 73 74 const int32_t CLOUD_DISK_RDB_VERSION = 3; 75 enum { 76 VERSION_ADD_DATA_SYNCER_UNIQUE_INDEX = 2, 77 VERSION_ADD_ERROR_TYPE = 3, 78 }; 79 } // namespace CloudSync 80 } // namespace FileManagement 81 } // namespace OHOS 82 #endif // OHOS_CLOUD_SYNC_DATA_SYNCER_RDB_COL_H 83