24 #ifndef _CAS_NET_BUF_H_ 25 #define _CAS_NET_BUF_H_ 33 #include <arpa/inet.h> 40 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) 44 #if (defined(SOLARIS) && !defined(SOLARIS_X86)) || defined(HPUX) || defined(AIX) || defined(PPC_LINUX) 45 #define BYTE_ORDER_BIG_ENDIAN 46 #elif defined(WINDOWS) || defined(LINUX) || defined(OSF1) || defined(ALPHA_LINUX) || defined(UNIXWARE7) || defined(SOLARIS_X86) 47 #ifdef BYTE_ORDER_BIG_ENDIAN 48 #error BYTE_ORDER_BIG_ENDIAN defined 51 #error PLATFORM NOT DEFINED 54 #ifdef BYTE_ORDER_BIG_ENDIAN 55 #define net_htoni64(X) (X) 56 #define net_htonf(X) (X) 57 #define net_htond(X) (X) 58 #define net_ntohi64(X) (X) 59 #define net_ntohf(X) (X) 60 #define net_ntohd(X) (X) 62 #define net_ntohi64(X) net_htoni64(X) 63 #define net_ntohf(X) net_htonf(X) 64 #define net_ntohd(X) net_htond(X) 67 #define NET_BUF_ERROR_MSG_SET(NET_BUF, ERR_INDICATOR, ERR_CODE, ERR_MSG) \ 68 net_buf_error_msg_set(NET_BUF, ERR_INDICATOR, ERR_CODE, ERR_MSG, __FILE__, __LINE__) 70 #define NET_BUF_KBYTE 1024 71 #define SHARD_NET_BUF_SIZE (512 * NET_BUF_KBYTE) 72 #define NET_BUF_SIZE (16 * NET_BUF_KBYTE) 73 #define NET_BUF_EXTRA_SIZE (64 * NET_BUF_KBYTE) 74 #define NET_BUF_ALLOC_SIZE (NET_BUF_SIZE + NET_BUF_EXTRA_SIZE) 75 #define SHARD_NET_BUF_ALLOC_SIZE (SHARD_NET_BUF_SIZE + NET_BUF_EXTRA_SIZE) 77 #define NET_BUF_HEADER_MSG_SIZE (NET_SIZE_INT) 78 #define NET_BUF_HEADER_SIZE (NET_BUF_HEADER_MSG_SIZE + cas_info_size) 79 #define NET_BUF_CURR_SIZE(n) \ 80 (((n)->alloc_size > 0) ? (NET_BUF_HEADER_SIZE + (n)->data_size) : 0) 81 #define NET_BUF_FREE_SIZE(n) \ 82 ((n)->alloc_size - NET_BUF_CURR_SIZE(n)) 83 #define NET_BUF_CURR_PTR(n) \ 84 ((n)->data + NET_BUF_CURR_SIZE(n)) 85 #define CHECK_NET_BUF_SIZE(n , size) \ 86 (NET_BUF_CURR_SIZE(n) < (size) ? 1 : 0) 88 #define NET_BUF_TYPE_SIZE(net_buf) (DOES_CLIENT_UNDERSTAND_THE_PROTOCOL \ 89 ((net_buf)->client_version, PROTOCOL_V7) ? 2 * NET_SIZE_BYTE : NET_SIZE_BYTE) 103 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 104 #define DB_BIGINT int64_t 115 #if defined (ENABLE_UNUSED_FUNCTION) 116 extern void net_buf_overwrite_bigint (
T_NET_BUF * net_buf,
int offset,
DB_BIGINT value);
127 #ifndef BYTE_ORDER_BIG_ENDIAN 137 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 146 #define net_arg_get_char(value, arg) \ 147 ((value)= *((char *) (arg) + NET_SIZE_INT)); 149 extern void net_arg_get_date (
short *year,
short *mon,
short *day,
void *arg);
151 extern void net_arg_get_timestamp (
short *yr,
short *mon,
short *day,
short *hh,
short *mm,
short *ss,
void *arg);
152 extern void net_arg_get_timestamptz (
short *yr,
short *mon,
short *day,
short *hh,
short *mm,
short *ss,
char **tz,
153 int *tz_size,
void *arg);
154 extern void net_arg_get_datetime (
short *yr,
short *mon,
short *day,
short *hh,
short *mm,
short *ss,
short *ms,
156 extern void net_arg_get_datetimetz (
short *yr,
short *mon,
short *day,
short *hh,
short *mm,
short *ss,
short *ms,
157 char **tz,
int *tz_size,
void *arg);
160 #if !defined(CAS_FOR_ORACLE) && !defined(CAS_FOR_MYSQL) T_BROKER_VERSION client_version
int net_buf_cp_short(T_NET_BUF *net_buf, short value)
void net_arg_get_int(int *value, void *arg)
void net_arg_get_object(T_OBJECT *obj, void *arg)
void net_arg_get_datetime(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, short *ms, void *arg)
size_t net_error_append_shard_info(char *err_buf, const char *err_msg, int buf_size)
void net_buf_init(T_NET_BUF *net_buf, T_BROKER_VERSION client_version)
int net_buf_cp_post_send_file(T_NET_BUF *net_buf, int, char *str)
int net_buf_cp_lob_handle(T_NET_BUF *net_buf, T_LOB_HANDLE *lob)
void net_arg_get_dbobject(DB_OBJECT **obj, void *arg)
void net_arg_get_double(double *value, void *arg)
void net_arg_get_datetimetz(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, short *ms, char **tz, int *tz_size, void *arg)
int net_buf_cp_str(T_NET_BUF *net_buf, const char *buf, int size)
void net_buf_clear(T_NET_BUF *net_buf)
void net_arg_get_bigint(DB_BIGINT *value, void *arg)
void net_buf_overwrite_int(T_NET_BUF *net_buf, int offset, int value)
void net_arg_get_timestamptz(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, char **tz, int *tz_size, void *arg)
void net_arg_get_short(short *value, void *arg)
void net_arg_get_time(short *hh, short *mm, short *ss, void *arg)
void net_arg_get_cci_object(int *pageid, short *slotid, short *volid, void *arg)
int net_buf_cp_object(T_NET_BUF *net_buf, T_OBJECT *oid)
int net_buf_cp_cas_type_and_charset(T_NET_BUF *net_buf, unsigned char cas_type, unsigned char charset)
int net_buf_cp_int(T_NET_BUF *net_buf, int value, int *begin_offset)
void net_arg_get_cache_time(void *ct, void *arg)
void net_buf_destroy(T_NET_BUF *net_buf)
void net_arg_get_lob_value(DB_VALUE *db_lob, void *arg)
INT64 net_htoni64(INT64 from)
void net_buf_column_info_set(T_NET_BUF *net_buf, char ut, short scale, int prec, char charset, const char *name)
void net_arg_get_timestamp(short *yr, short *mon, short *day, short *hh, short *mm, short *ss, void *arg)
void net_arg_get_lob_handle(T_LOB_HANDLE *lob, void *arg)
void net_arg_put_int(void *arg, int *value)
void net_arg_get_float(float *value, void *arg)
float net_htonf(float from)
int net_buf_cp_float(T_NET_BUF *net_buf, float value)
void net_arg_get_size(int *size, void *arg)
int net_buf_cp_bigint(T_NET_BUF *net_buf, DB_BIGINT value, int *begin_offset)
void net_buf_error_msg_set(T_NET_BUF *net_buf, int errindicator, int errcode, char *errstr, const char *file, int line)
int net_buf_cp_double(T_NET_BUF *net_buf, double value)
void net_arg_get_date(short *year, short *mon, short *day, void *arg)
int net_buf_cp_byte(T_NET_BUF *net_buf, char ch)
void net_arg_get_str(char **value, int *size, void *arg)
double net_htond(double from)