• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
62     // data status changes to lock_change
63     static constexpr const char *TO_LOCAL_CHANGE = "status = CASE WHEN status == 2 THEN 3 ELSE status END";
64     // data status changes from unlocking to unlock
65     static constexpr const char *UNLOCKING_TO_UNLOCK = "status = CASE WHEN status == 1 THEN 0 ELSE status END";
66     // data status changes to unlock
67     static constexpr const char *TO_UNLOCK = "status = CASE WHEN status == 2 THEN 0 WHEN status == 3 THEN 1"
68         " ELSE status END";
69     // data status changes to lock
70     static constexpr const char *TO_LOCK = "status = CASE WHEN status == 0 THEN 2 WHEN status == 1 THEN 3"
71         " ELSE status END";
72 
73     static constexpr const char *CLOUD_VERSION_RECORD_PREFIX_KEY = "naturalbase_cloud_version_";
74 
75     static constexpr const char *FLAG_AND_DATA_MODE_NOTIFY = "DELETE#ALL_CLOUDDATA";
76 
77     static constexpr const char *FLAG_ONLY_MODE_NOTIFY = "RESERVE#ALL_CLOUDDATA";
78 
79     // cloud data timestamp is utc ms precision
80     // used for 100ns to ms when handle cloud data timestamp
81     static constexpr uint32_t TEN_THOUSAND = 10000;
82     static constexpr int64_t CLOUD_DEFAULT_TIMEOUT = -1;
83     static constexpr uint32_t ONE_SECOND = 1000 * TEN_THOUSAND; // 1000ms
84 
85     static constexpr int32_t MAX_UPLOAD_BATCH_COUNT = 2000;
86     static constexpr int32_t MIN_UPLOAD_BATCH_COUNT = 1;
87     static constexpr int32_t MAX_UPLOAD_SIZE = 128 * 1024 * 1024; // 128M
88     static constexpr int32_t MIN_UPLOAD_SIZE = 1024; // 1024Bytes
89     static constexpr int32_t MIN_RETRY_CONFLICT_COUNTS = -1; // unlimited
90 };
91 } // namespace DistributedDB
92 #endif // CLOUD_DB_CONSTANT_H