/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 
 * ubs-hcom is licensed under the Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *      http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */
#ifndef OCK_HCOM_CPP_ERR_H
#define OCK_HCOM_CPP_ERR_H

namespace ock {
namespace hcom {

enum NNCode
{
    NN_OK = 0,
    NN_ERROR = 100,
    NN_INVALID_IP = 101,
    NN_NEW_OBJECT_FAILED = 102,
    NN_INVALID_PARAM = 103,
    NN_TWO_SIDE_MESSAGE_TOO_LARGE = 104,
    NN_INVALID_OPCODE = 105,
    NN_EP_NOT_ESTABLISHED = 106,
    NN_EP_NOT_INITIALIZED = 107,
    NN_BLOCK_QUEUE_SEM_INIT_FAILED = 108,
    NN_TIMEOUT = 109,
    NN_INVALID_OPERATION = 110,
    NN_MALLOC_FAILED = 111,
    NN_SEQ_NO_NOT_MATCHED = 112,
    NN_NOT_INITIALIZED = 113,
    NN_GET_BUFF_FAILED = 114,
    NN_MSG_TIMEOUT = 115,
    NN_MSG_CANCELED = 116,
    NN_MSG_ERROR = 117,
    NN_CONNECT_REFUSED = 118,
    NN_CONNECT_PROTOCOL_MISMATCH = 119,
    NN_INVALID_LKEY = 120,
    NN_EP_BROKEN = 121,
    NN_EP_CLOSE = 122,
    NN_PARAM_INVALID = 123,
    NN_OOB_LISTEN_SOCKET_ERROR = 124,
    NN_OOB_CONN_SEND_ERROR = 125,
    NN_OOB_CONN_RECEIVE_ERROR = 126,
    NN_OOB_CONN_CB_NOT_SET = 127,
    NN_OOB_CLIENT_SOCKET_ERROR = 128,
    NN_OOB_SSL_INIT_ERROR = 129,
    NN_OOB_SSL_WRITE_ERROR = 130,
    NN_OOB_SSL_READ_ERROR = 131,
    NN_HEARTBEAT_CREATE_EPOLL_FAILED = 132,
    NN_HEARTBEAT_SET_SOCKET_OPT_FAILED = 133,
    NN_HEARTBEAT_IP_ALREADY_EXISTED = 134,
    NN_HEARTBEAT_IP_ADD_FAILED = 135,
    NN_HEARTBEAT_IP_ADD_EPOLL_FAILED = 136,
    NN_HEARTBEAT_IP_REMOVE_EPOLL_FAILED = 137,
    NN_HEARTBEAT_IP_NO_FOUND = 138,
    NN_ENCRYPT_FAILED = 139,
    NN_DECRYPT_FAILED = 140,
    NN_OOB_SEC_PROCESS_ERROR = 141,
    NN_EXCHANGE_FD_NOT_SUPPORT = 142,
    NN_VALIDATE_HEADER_CRC_INVALID = 143,
    NN_UDS_ID_INFO_NOT_SUPPORT = 144,
    NN_GET_UDS_ID_INFO_FAILED = 145,
    NN_VERSION_CHECK_FAILED = 146,
    NN_URMA_ACCESS_ABRT = 147,
    NN_URMA_ACK_TIMEOUT = 148,
};

enum SerCode
{
    SER_OK = 0,
    SER_ERROR = 500,
    SER_INVALID_PARAM = 501,
    SER_NEW_OBJECT_FAILED = 502,
    SER_CREATE_TIMEOUT_THREAD_FAILED = 503,
    SER_NEW_MESSAGE_DATA_FAILED = 504,
    SER_NOT_ESTABLISHED = 505,
    SER_STORE_SEQ_DUP = 506,
    SER_STORE_SEQ_NO_FOUND = 507,
    SER_RSP_SIZE_TOO_SMALL = 508,
    SER_TIMEOUT = 509,
    SER_TIMER_NOT_WORK = 510,
    SER_NOT_ENABLE_RNDV = 511,
    SER_RNDV_FAILED_BY_PEER = 512,
    SER_CHANNEL_ID_DUP = 513,
    SER_EP_NOT_BROKEN_ALL = 514,
    SER_CHANNEL_NOT_EXIST = 515,
    SER_CHANNEL_RECONNECT_OVER_WINDOW = 516,
    SER_EP_BROKEN_DURING_CONNECTING = 517,
    SER_NOT_SUPPORT_SERVER_RECONNECT = 518,
    SER_STOP = 519,
    SER_NULL_INSTANCE = 520,
    SER_UNSUPPORTED = 521,
    SER_INVALID_IP = 522,
    SER_MALLOC_FAILED = 523,
    SER_SPLIT_INVALID_MSG = 524,
    SER_MULTICAST_SEND_ALL_FAILED = 525,
};
} // namespace hcom
} // namespace ock

#endif // OCK_HCOM_CPP_ERR_H