24 #ifndef _CAS_NETWORK_H_ 25 #define _CAS_NETWORK_H_ 33 #define NET_MIN_TIMEOUT 2 34 #define NET_DEFAULT_TIMEOUT 60 35 #define MYSQL_CONNECT_TIMEOUT (5*60*60) 38 #define MIN(X, Y) ((X) < (Y) ? (X) : (Y)) 41 #define NET_SIZE_BYTE ((int) sizeof(char)) 42 #define NET_SIZE_SHORT ((int) sizeof(short)) 43 #define NET_SIZE_INT ((int) sizeof(int)) 44 #define NET_SIZE_FLOAT ((int) sizeof(float)) 45 #define NET_SIZE_DOUBLE ((int) sizeof(double)) 46 #define NET_SIZE_INT64 ((int) sizeof(INT64)) 47 #define NET_SIZE_BIGINT NET_SIZE_INT64 48 #define NET_SIZE_DATE (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT) 49 #define NET_SIZE_TIME (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT) 50 #define NET_SIZE_OBJECT (NET_SIZE_INT + NET_SIZE_SHORT + NET_SIZE_SHORT) 51 #define NET_SIZE_TIMESTAMP (NET_SIZE_SHORT * 6) 52 #define NET_SIZE_DATETIME (NET_SIZE_SHORT * 7) 54 #define NET_ARG_GET_SIZE(SIZE, ARG) \ 57 memcpy(&tmp_i, (char*) (ARG), NET_SIZE_INT); \ 58 SIZE = ntohl(tmp_i); \ 61 #if defined(CAS_FOR_ORACLE) || defined(CAS_FOR_MYSQL) 62 #define NET_ARG_GET_BIGINT(VALUE, ARG) \ 65 memcpy(&tmp_i, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_BIGINT); \ 66 VALUE = ntohi64(tmp_i); \ 70 #define NET_ARG_GET_BIGINT(VALUE, ARG) \ 73 memcpy(&tmp_i, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_BIGINT); \ 74 VALUE = ntohi64(tmp_i); \ 78 #define NET_ARG_GET_INT(VALUE, ARG) \ 81 memcpy(&tmp_i, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_INT); \ 82 VALUE = ntohl(tmp_i); \ 85 #define NET_ARG_GET_SHORT(VALUE, ARG) \ 88 memcpy(&tmp_s, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_SHORT); \ 89 VALUE = ntohs(tmp_s); \ 92 #define NET_ARG_GET_FLOAT(VALUE, ARG) \ 95 memcpy(&tmp_f, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_FLOAT); \ 96 VALUE = net_ntohf(tmp_f); \ 99 #define NET_ARG_GET_DOUBLE(VALUE, ARG) \ 102 memcpy(&tmp_d, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_DOUBLE); \ 103 VALUE = net_ntohd(tmp_d); \ 106 #define NET_ARG_GET_CHAR(VALUE, ARG) \ 108 VALUE = (*((char*) (ARG) + NET_SIZE_INT)); \ 111 #define NET_ARG_GET_STR(VALUE, SIZE, ARG) \ 114 char *cur_p = (char*) ARG; \ 115 memcpy(&_size, cur_p, NET_SIZE_INT); \ 116 _size = ntohl(_size); \ 117 cur_p += NET_SIZE_INT; \ 122 VALUE = ((char*) cur_p); \ 127 #define NET_ARG_GET_DATE(YEAR, MON, DAY, ARG) \ 129 char *cur_p = (char*) ARG; \ 131 int pos = NET_SIZE_INT; \ 132 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 133 YEAR = ntohs(tmp_s); \ 134 pos += NET_SIZE_SHORT; \ 135 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 136 MON = ntohs(tmp_s); \ 137 pos += NET_SIZE_SHORT; \ 138 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 139 DAY = ntohs(tmp_s); \ 142 #define NET_ARG_GET_TIME(HH, MM, SS, ARG) \ 144 char *cur_p = (char*) ARG; \ 146 int pos = NET_SIZE_INT + NET_SIZE_SHORT * 3; \ 147 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 149 pos += NET_SIZE_SHORT; \ 150 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 152 pos += NET_SIZE_SHORT; \ 153 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 157 #define NET_ARG_GET_TIMESTAMP(YR, MON, DAY, HH, MM, SS, ARG) \ 159 char *cur_p = (char*) ARG; \ 161 int pos = NET_SIZE_INT; \ 162 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 164 pos += NET_SIZE_SHORT; \ 165 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 166 MON = ntohs(tmp_s); \ 167 pos += NET_SIZE_SHORT; \ 168 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 169 DAY = ntohs(tmp_s); \ 170 pos += NET_SIZE_SHORT; \ 171 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 173 pos += NET_SIZE_SHORT; \ 174 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 176 pos += NET_SIZE_SHORT; \ 177 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 181 #define NET_ARG_GET_DATETIME(YR, MON, DAY, HH, MM, SS, MS, ARG) \ 183 char *cur_p = (char*) ARG; \ 185 int pos = NET_SIZE_INT; \ 186 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 188 pos += NET_SIZE_SHORT; \ 189 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 190 MON = ntohs(tmp_s); \ 191 pos += NET_SIZE_SHORT; \ 192 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 193 DAY = ntohs(tmp_s); \ 194 pos += NET_SIZE_SHORT; \ 195 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 197 pos += NET_SIZE_SHORT; \ 198 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 200 pos += NET_SIZE_SHORT; \ 201 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 203 pos += NET_SIZE_SHORT; \ 204 memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \ 208 #define NET_ARG_GET_OBJECT(VALUE, ARG) \ 210 char *cur_p = (char*) ARG; \ 212 short slotid, volid; \ 213 DB_IDENTIFIER tmp_oid; \ 214 DB_OBJECT *tmp_obj; \ 215 int pos = NET_SIZE_INT; \ 216 memcpy(&pageid, cur_p + pos, NET_SIZE_INT);\ 217 pageid = ntohl(pageid); \ 218 pos += NET_SIZE_INT; \ 219 memcpy(&slotid, cur_p + pos, NET_SIZE_SHORT);\ 220 slotid = ntohs(slotid); \ 221 pos += NET_SIZE_SHORT; \ 222 memcpy(&volid, cur_p + pos, NET_SIZE_SHORT);\ 223 volid = ntohs(volid); \ 224 pos += NET_SIZE_SHORT; \ 225 tmp_oid.pageid = pageid; \ 226 tmp_oid.slotid = slotid; \ 227 tmp_oid.volid = volid; \ 228 tmp_obj = db_object(&tmp_oid); \ 232 #define NET_ARG_GET_CCI_OBJECT(PAGEID, SLOTID, VOLID, ARG) \ 234 char *_macro_tmp_p = (char*) ARG; \ 236 short _tmp_slotid, _tmp_volid; \ 237 int pos = NET_SIZE_INT; \ 238 memcpy(&_tmp_pageid, _macro_tmp_p + pos, NET_SIZE_INT); \ 239 PAGEID = ntohl(_tmp_pageid); \ 240 pos += NET_SIZE_INT; \ 241 memcpy(&_tmp_slotid, _macro_tmp_p + pos, NET_SIZE_SHORT); \ 242 SLOTID = ntohs(_tmp_slotid); \ 243 pos += NET_SIZE_SHORT; \ 244 memcpy(&_tmp_volid, _macro_tmp_p + pos, NET_SIZE_SHORT); \ 245 VOLID = ntohs(_tmp_volid); \ 248 #define NET_ARG_GET_CACHE_TIME(CT, ARG) \ 250 char *cur_p = (char*) ARG; \ 252 int pos = NET_SIZE_INT; \ 253 memcpy(&sec, cur_p + pos, NET_SIZE_INT); \ 254 pos += NET_SIZE_INT; \ 255 memcpy(&usec, cur_p + pos, NET_SIZE_INT); \ 256 (CT)->sec = ntohl(sec); \ 257 (CT)->usec = ntohl(usec); \ 286 extern int net_decode_str (
char *msg,
int msg_size,
char *func_code,
void ***ret_argv);
298 int indicator,
int code,
char *msg);
static SOCKET srv_sock_fd
SOCKET net_init_env(char *port_name)
bool is_net_timed_out(void)
int net_read_int(SOCKET sock_fd, int *value)
SOCKET net_connect_client(SOCKET srv_sock_fd)
SOCKET net_connect_proxy(void)
int net_write_int(SOCKET sock_fd, int value)
void init_msg_header(MSG_HEADER *header)
int net_write_header(SOCKET sock_fd, MSG_HEADER *header)
int net_read_stream(SOCKET sock_fd, char *buf, int size)
int net_read_to_file(SOCKET sock_fd, int file_size, char *filename)
void net_write_error(SOCKET sock, int version, char *driver_info, char *cas_info, int cas_info_size, int indicator, int code, char *msg)
int net_write_stream(SOCKET sock_fd, const char *buf, int size)
int net_read_header(SOCKET sock_fd, MSG_HEADER *header)
void net_timeout_set(int timeout_sec)
int net_write_from_file(SOCKET sock_fd, int file_size, char *filename)
int net_decode_str(char *msg, int msg_size, char *func_code, void ***ret_argv)