File cas_error.h¶
File List > broker > cas_error.h
Go to the documentation of this file
/*
* Copyright (C) 2008 Search Solution Corporation.
* Copyright (c) 2016 CUBRID Corporation.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* - Neither the name of the <ORGANIZATION> nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*
*/
/*
* cas_error.h -
*
* CAUTION!
*
* In case of common,
* cci repository source (src/cci/broker_cas_error.h) must be updated,
* becuase CCI source and Engine source have been separated.
*/
#ifndef _CAS_ERROR_H_
#define _CAS_ERROR_H_
#ident "$Id$"
#ifdef __cplusplus
extern "C"
{
#endif
typedef enum
{
CAS_ER_DBMS = -10000,
CAS_ER_INTERNAL = -10001,
CAS_ER_NO_MORE_MEMORY = -10002,
CAS_ER_COMMUNICATION = -10003,
CAS_ER_ARGS = -10004,
CAS_ER_TRAN_TYPE = -10005,
CAS_ER_SRV_HANDLE = -10006,
CAS_ER_NUM_BIND = -10007,
CAS_ER_UNKNOWN_U_TYPE = -10008,
CAS_ER_DB_VALUE = -10009,
CAS_ER_TYPE_CONVERSION = -10010,
CAS_ER_PARAM_NAME = -10011,
CAS_ER_NO_MORE_DATA = -10012,
CAS_ER_OBJECT = -10013,
CAS_ER_OPEN_FILE = -10014,
CAS_ER_SCHEMA_TYPE = -10015,
CAS_ER_VERSION = -10016,
CAS_ER_FREE_SERVER = -10017,
CAS_ER_NOT_AUTHORIZED_CLIENT = -10018,
CAS_ER_QUERY_CANCEL = -10019,
CAS_ER_NOT_COLLECTION = -10020,
CAS_ER_COLLECTION_DOMAIN = -10021,
CAS_ER_NO_MORE_RESULT_SET = -10022,
CAS_ER_INVALID_CALL_STMT = -10023,
CAS_ER_STMT_POOLING = -10024,
CAS_ER_DBSERVER_DISCONNECTED = -10025,
CAS_ER_MAX_PREPARED_STMT_COUNT_EXCEEDED = -10026,
CAS_ER_HOLDABLE_NOT_ALLOWED = -10027,
CAS_ER_NOT_IMPLEMENTED = -10100,
CAS_ER_MAX_CLIENT_EXCEEDED = -10101,
CAS_ER_INVALID_CURSOR_POS = -10102,
CAS_ER_SSL_TYPE_NOT_ALLOWED = -10103,
CAS_ER_IS = -10200,
} T_CAS_ERROR_CODE;
#define ERROR_INDICATOR_UNSET (0)
#define CAS_ERROR_INDICATOR (-1)
#define DBMS_ERROR_INDICATOR (-2)
#define CAS_NO_ERROR (0)
#define ERR_MSG_LENGTH (1024)
#define ERR_FILE_LENGTH (256)
#define IS_ERROR_INFO_SET() is_error_info_set()
#define ERROR_INFO_SET(ERR_CODE, ERR_INDICATOR)\
error_info_set(ERR_CODE, ERR_INDICATOR, __FILE__, __LINE__)
#define ERROR_INFO_SET_FORCE(ERR_CODE, ERR_INDICATOR)\
error_info_set_force(ERR_CODE, ERR_INDICATOR, __FILE__, __LINE__)
#define ERROR_INFO_SET_WITH_MSG(ERR_CODE, ERR_INDICATOR, ERR_MSG)\
error_info_set_with_msg(ERR_CODE, ERR_INDICATOR, ERR_MSG, false, __FILE__, __LINE__)
#define NET_BUF_ERR_SET(NET_BUF)\
err_msg_set(NET_BUF, __FILE__, __LINE__)
typedef struct t_error_info T_ERROR_INFO;
struct t_error_info
{
int err_indicator;
int err_number;
char err_string[ERR_MSG_LENGTH];
char err_file[ERR_FILE_LENGTH];
int err_line;
};
struct t_net_buf;
typedef struct t_net_buf T_NET_BUF;
extern int is_error_info_set (void);
extern void err_msg_set (T_NET_BUF * net_buf, const char *file, int line);
extern int error_info_set (int err_number, int err_indicator, const char *file, int line);
extern int error_info_set_force (int err_number, int err_indicator, const char *file, int line);
extern int error_info_set_with_msg (int err_number, int err_indicator, const char *err_msg, bool force,
const char *file, int line);
extern void error_info_clear (void);
extern void set_server_aborted (bool is_aborted);
extern bool is_server_aborted (void);
#ifdef __cplusplus
}
#endif
/*
* CAUTION!
*
* In case of common,
* cci repository source (src/cci/broker_cas_error.h) must be updated,
* becuase CCI source and Engine source have been separated.
*/
#endif /* _CAS_ERROR_H_ */