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 CLOUD_DB_CONSTANT_H 17 #define CLOUD_DB_CONSTANT_H 18 19 #include "cloud/cloud_store_types.h" 20 #include <string> 21 22 namespace DistributedDB { 23 class CloudDbConstant { 24 public: 25 static constexpr const char *CLOUD_META_TABLE_PREFIX = "naturalbase_cloud_meta_"; 26 static constexpr const char *GID_FIELD = "#_gid"; 27 static constexpr const char *CREATE_FIELD = "#_createTime"; 28 static constexpr const char *MODIFY_FIELD = "#_modifyTime"; 29 static constexpr const char *DELETE_FIELD = "#_deleted"; 30 static constexpr const char *CURSOR_FIELD = "#_cursor"; 31 static constexpr const char *TYPE_FIELD = "#_type"; 32 static constexpr const char *QUERY_FIELD = "#_query"; 33 static constexpr const char *REFERENCE_FIELD = "#_reference"; 34 static constexpr const char *VERSION_FIELD = "#_version"; 35 static constexpr const char *ERROR_FIELD = "#_error"; 36 static constexpr const char *SHARING_RESOURCE_FIELD = "#_sharing_resource"; 37 static constexpr const char *HASH_KEY_FIELD = "#_hash_key"; 38 static constexpr const char *ROW_ID_FIELD_NAME = "rowid"; 39 static constexpr const char *ASSET = "asset"; 40 static constexpr const char *ASSETS = "assets"; 41 static constexpr const char *SHARED = "_shared"; 42 static constexpr const char *CLOUD_OWNER = "cloud_owner"; 43 static constexpr const char *CLOUD_PRIVILEGE = "cloud_privilege"; 44 static constexpr const char *DEFAULT_CLOUD_DEV = "cloud"; 45 46 // use for inner 47 static constexpr const char *ROWID = "rowid"; 48 static constexpr const char *FLAG = "flag"; 49 static constexpr const char *TIMESTAMP = "timestamp"; 50 static constexpr const char *HASH_KEY = "hash_key"; 51 static constexpr const char *STATUS = "status"; 52 static constexpr const char *CLOUD_FLAG = "cloud_flag"; 53 54 // kv cloud field 55 static constexpr const char *CLOUD_KV_FIELD_KEY = "key"; 56 static constexpr const char *CLOUD_KV_FIELD_VALUE = "value"; 57 static constexpr const char *CLOUD_KV_FIELD_DEVICE = "cur_device"; 58 static constexpr const char *CLOUD_KV_FIELD_ORI_DEVICE = "ori_device"; 59 static constexpr const char *CLOUD_KV_FIELD_DEVICE_CREATE_TIME = "device_create_time"; 60 static constexpr const char *CLOUD_KV_TABLE_NAME = "sync_data"; 61 static constexpr const char *CLOUD_KV_FIELD_USERID = "userid"; 62 63 // data status changes to lock_change 64 static constexpr const char *TO_LOCAL_CHANGE = "status = CASE WHEN status == 2 THEN 3 ELSE status END"; 65 // data status changes from unlocking to unlock 66 static constexpr const char *UNLOCKING_TO_UNLOCK = "status = CASE WHEN status == 1 THEN 0 ELSE status END"; 67 // data status changes to unlock 68 static constexpr const char *TO_UNLOCK = "status = CASE WHEN status == 2 THEN 0 WHEN status == 3 THEN 1" 69 " ELSE status END"; 70 // data status changes to lock 71 static constexpr const char *TO_LOCK = "status = CASE WHEN status == 0 THEN 2 WHEN status == 1 THEN 3" 72 " ELSE status END"; 73 74 static constexpr const char *CLOUD_VERSION_RECORD_PREFIX_KEY = "naturalbase_cloud_version_"; 75 76 static constexpr const char *FLAG_AND_DATA_MODE_NOTIFY = "DELETE#ALL_CLOUDDATA"; 77 78 static constexpr const char *FLAG_ONLY_MODE_NOTIFY = "RESERVE#ALL_CLOUDDATA"; 79 80 // cloud data timestamp is utc ms precision 81 // used for 100ns to ms when handle cloud data timestamp 82 static constexpr uint32_t TEN_THOUSAND = 10000; 83 static constexpr int64_t CLOUD_DEFAULT_TIMEOUT = -1; 84 static constexpr uint32_t ONE_SECOND = 1000 * TEN_THOUSAND; // 1000ms 85 86 static constexpr int32_t MAX_UPLOAD_BATCH_COUNT = 2000; 87 static constexpr int32_t MIN_UPLOAD_BATCH_COUNT = 1; 88 static constexpr int32_t MAX_UPLOAD_SIZE = 128 * 1024 * 1024; // 128M 89 static constexpr int32_t MIN_UPLOAD_SIZE = 1024; // 1024Bytes 90 static constexpr int32_t MIN_RETRY_CONFLICT_COUNTS = -1; // unlimited 91 }; 92 } // namespace DistributedDB 93 #endif // CLOUD_DB_CONSTANT_H