• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 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 "kv_store_errno.h"
17 #include "db_errno.h"
18 
19 namespace DistributedDB {
20 struct DBErrnoPair {
21     int errCode;
22     DBStatus status;
23 };
24 
25 namespace {
26     const DBErrnoPair ERRNO_MAP[] = {
27         { E_OK, OK },
28         { -E_BUSY, BUSY },
29         { -E_NOT_FOUND, NOT_FOUND },
30         { -E_INVALID_ARGS, INVALID_ARGS },
31         { -E_TIMEOUT, TIME_OUT },
32         { -E_NOT_SUPPORT, NOT_SUPPORT },
33         { -E_INVALID_PASSWD_OR_CORRUPTED_DB, INVALID_PASSWD_OR_CORRUPTED_DB },
34         { -E_MAX_LIMITS, OVER_MAX_LIMITS },
35         { -E_INVALID_FILE, INVALID_FILE },
36         { -E_INVALID_PATH, NO_PERMISSION },
37         { -E_READ_ONLY, READ_ONLY },
38         { -E_INVALID_SCHEMA, INVALID_SCHEMA },
39         { -E_SCHEMA_MISMATCH, SCHEMA_MISMATCH },
40         { -E_SCHEMA_VIOLATE_VALUE, SCHEMA_VIOLATE_VALUE },
41         { -E_VALUE_MISMATCH_FEILD_COUNT, INVALID_VALUE_FIELDS },
42         { -E_VALUE_MISMATCH_FEILD_TYPE, INVALID_FIELD_TYPE },
43         { -E_VALUE_MISMATCH_CONSTRAINT, CONSTRAIN_VIOLATION },
44         { -E_INVALID_FORMAT, INVALID_FORMAT },
45         { -E_STALE, STALE },
46         { -E_LOCAL_DELETED, LOCAL_DELETED },
47         { -E_LOCAL_DEFEAT, LOCAL_DEFEAT },
48         { -E_LOCAL_COVERED, LOCAL_COVERED },
49         { -E_INVALID_QUERY_FORMAT, INVALID_QUERY_FORMAT },
50         { -E_INVALID_QUERY_FIELD, INVALID_QUERY_FIELD },
51         { -E_ALREADY_SET, ALREADY_SET },
52         { -E_EKEYREVOKED, EKEYREVOKED_ERROR },
53         { -E_SECURITY_OPTION_CHECK_ERROR, SECURITY_OPTION_CHECK_ERROR },
54         { -E_INTERCEPT_DATA_FAIL, INTERCEPT_DATA_FAIL },
55         { -E_LOG_OVER_LIMITS, LOG_OVER_LIMITS },
56         { -E_DISTRIBUTED_SCHEMA_NOT_FOUND, DISTRIBUTED_SCHEMA_NOT_FOUND },
57         { -E_DISTRIBUTED_SCHEMA_CHANGED, DISTRIBUTED_SCHEMA_CHANGED },
58         { -E_MODE_MISMATCH, MODE_MISMATCH },
59         { -E_NO_NEED_ACTIVE, NOT_ACTIVE },
60         { -E_NONEXISTENT, NONEXISTENT },
61         { -E_TYPE_MISMATCH, TYPE_MISMATCH },
62         { -E_DENIED_SQL, NO_PERMISSION },
63         { -E_USER_CHANGE, USER_CHANGED },
64         { -E_PERIPHERAL_INTERFACE_FAIL, COMM_FAILURE },
65         { -E_FEEDBACK_COMMUNICATOR_NOT_FOUND, COMM_FAILURE },
66         { -E_FEEDBACK_UNKNOWN_MESSAGE, NOT_SUPPORT },
67         { -E_NOT_PERMIT, PERMISSION_CHECK_FORBID_SYNC },
68         { -E_REMOTE_OVER_SIZE, OVER_MAX_LIMITS },
69         { -E_CONSTRAINT, CONSTRAINT },
70     };
71 }
72 
TransferDBErrno(int err)73 DBStatus TransferDBErrno(int err)
74 {
75     for (const auto &item : ERRNO_MAP) {
76         if (item.errCode == err) {
77             return item.status;
78         }
79     }
80     return DB_ERROR;
81 }
82 };
83