CUBRID Engine  latest
cas_network.h File Reference
#include <string.h>
#include "cas_net_buf.h"
Include dependency graph for cas_network.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MSG_HEADER
 

Macros

#define NET_MIN_TIMEOUT   2
 
#define NET_DEFAULT_TIMEOUT   60
 
#define MYSQL_CONNECT_TIMEOUT   (5*60*60) /* 5 hour. MySQL timeout = 8 hour */
 
#define NET_SIZE_BYTE   ((int) sizeof(char))
 
#define NET_SIZE_SHORT   ((int) sizeof(short))
 
#define NET_SIZE_INT   ((int) sizeof(int))
 
#define NET_SIZE_FLOAT   ((int) sizeof(float))
 
#define NET_SIZE_DOUBLE   ((int) sizeof(double))
 
#define NET_SIZE_INT64   ((int) sizeof(INT64))
 
#define NET_SIZE_BIGINT   NET_SIZE_INT64
 
#define NET_SIZE_DATE   (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT)
 
#define NET_SIZE_TIME   (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT)
 
#define NET_SIZE_OBJECT   (NET_SIZE_INT + NET_SIZE_SHORT + NET_SIZE_SHORT)
 
#define NET_SIZE_TIMESTAMP   (NET_SIZE_SHORT * 6)
 
#define NET_SIZE_DATETIME   (NET_SIZE_SHORT * 7)
 
#define NET_ARG_GET_SIZE(SIZE, ARG)
 
#define NET_ARG_GET_BIGINT(VALUE, ARG)
 
#define NET_ARG_GET_INT(VALUE, ARG)
 
#define NET_ARG_GET_SHORT(VALUE, ARG)
 
#define NET_ARG_GET_FLOAT(VALUE, ARG)
 
#define NET_ARG_GET_DOUBLE(VALUE, ARG)
 
#define NET_ARG_GET_CHAR(VALUE, ARG)
 
#define NET_ARG_GET_STR(VALUE, SIZE, ARG)
 
#define NET_ARG_GET_DATE(YEAR, MON, DAY, ARG)
 
#define NET_ARG_GET_TIME(HH, MM, SS, ARG)
 
#define NET_ARG_GET_TIMESTAMP(YR, MON, DAY, HH, MM, SS, ARG)
 
#define NET_ARG_GET_DATETIME(YR, MON, DAY, HH, MM, SS, MS, ARG)
 
#define NET_ARG_GET_OBJECT(VALUE, ARG)
 
#define NET_ARG_GET_CCI_OBJECT(PAGEID, SLOTID, VOLID, ARG)
 
#define NET_ARG_GET_CACHE_TIME(CT, ARG)
 

Functions

SOCKET net_init_env (char *port_name)
 
SOCKET net_connect_proxy (void)
 
SOCKET net_connect_client (SOCKET srv_sock_fd)
 
int net_read_stream (SOCKET sock_fd, char *buf, int size)
 
int net_write_stream (SOCKET sock_fd, const char *buf, int size)
 
int net_write_int (SOCKET sock_fd, int value)
 
int net_read_int (SOCKET sock_fd, int *value)
 
int net_decode_str (char *msg, int msg_size, char *func_code, void ***ret_argv)
 
int net_read_to_file (SOCKET sock_fd, int file_size, char *filename)
 
int net_write_from_file (SOCKET sock_fd, int file_size, char *filename)
 
void net_timeout_set (int timeout_sec)
 
void init_msg_header (MSG_HEADER *header)
 
int net_read_header (SOCKET sock_fd, MSG_HEADER *header)
 
int net_write_header (SOCKET sock_fd, MSG_HEADER *header)
 
bool is_net_timed_out (void)
 
void net_write_error (SOCKET sock, int version, char *driver_info, char *cas_info, int cas_info_size, int indicator, int code, char *msg)
 

Macro Definition Documentation

#define MYSQL_CONNECT_TIMEOUT   (5*60*60) /* 5 hour. MySQL timeout = 8 hour */

Definition at line 35 of file cas_network.h.

#define NET_ARG_GET_BIGINT (   VALUE,
  ARG 
)
Value:
do { \
DB_BIGINT tmp_i; \
memcpy(&tmp_i, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_BIGINT); \
VALUE = ntohi64(tmp_i); \
} while (0)
#define NET_SIZE_BIGINT
Definition: cas_network.h:47
UINT64 ntohi64(UINT64 from)
int64_t DB_BIGINT
Definition: dbtype_def.h:751
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 70 of file cas_network.h.

#define NET_ARG_GET_CACHE_TIME (   CT,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
int sec, usec; \
int pos = NET_SIZE_INT; \
memcpy(&sec, cur_p + pos, NET_SIZE_INT); \
pos += NET_SIZE_INT; \
memcpy(&usec, cur_p + pos, NET_SIZE_INT); \
(CT)->sec = ntohl(sec); \
(CT)->usec = ntohl(usec); \
} while (0)
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)

Definition at line 248 of file cas_network.h.

#define NET_ARG_GET_CCI_OBJECT (   PAGEID,
  SLOTID,
  VOLID,
  ARG 
)
Value:
do { \
char *_macro_tmp_p = (char*) ARG; \
int _tmp_pageid; \
short _tmp_slotid, _tmp_volid; \
int pos = NET_SIZE_INT; \
memcpy(&_tmp_pageid, _macro_tmp_p + pos, NET_SIZE_INT); \
PAGEID = ntohl(_tmp_pageid); \
pos += NET_SIZE_INT; \
memcpy(&_tmp_slotid, _macro_tmp_p + pos, NET_SIZE_SHORT); \
SLOTID = ntohs(_tmp_slotid); \
pos += NET_SIZE_SHORT; \
memcpy(&_tmp_volid, _macro_tmp_p + pos, NET_SIZE_SHORT); \
VOLID = ntohs(_tmp_volid); \
} while (0)
INT16 VOLID
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)
INT32 PAGEID

Definition at line 232 of file cas_network.h.

#define NET_ARG_GET_CHAR (   VALUE,
  ARG 
)
Value:
do { \
VALUE = (*((char*) (ARG) + NET_SIZE_INT)); \
} while (0)
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 106 of file cas_network.h.

#define NET_ARG_GET_DATE (   YEAR,
  MON,
  DAY,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
short tmp_s; \
int pos = NET_SIZE_INT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
YEAR = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MON = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
DAY = ntohs(tmp_s); \
} while (0)
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 127 of file cas_network.h.

#define NET_ARG_GET_DATETIME (   YR,
  MON,
  DAY,
  HH,
  MM,
  SS,
  MS,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
short tmp_s; \
int pos = NET_SIZE_INT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
YR = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MON = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
DAY = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
HH = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MM = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
SS = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MS = ntohs(tmp_s); \
} while (0)
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 181 of file cas_network.h.

#define NET_ARG_GET_DOUBLE (   VALUE,
  ARG 
)
Value:
do { \
double tmp_d; \
memcpy(&tmp_d, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_DOUBLE); \
VALUE = net_ntohd(tmp_d); \
} while (0)
#define net_ntohd(X)
Definition: cas_net_buf.h:64
#define NET_SIZE_DOUBLE
Definition: cas_network.h:45
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 99 of file cas_network.h.

#define NET_ARG_GET_FLOAT (   VALUE,
  ARG 
)
Value:
do { \
float tmp_f; \
memcpy(&tmp_f, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_FLOAT); \
VALUE = net_ntohf(tmp_f); \
} while (0)
#define NET_SIZE_FLOAT
Definition: cas_network.h:44
#define net_ntohf(X)
Definition: cas_net_buf.h:63
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 92 of file cas_network.h.

#define NET_ARG_GET_INT (   VALUE,
  ARG 
)
Value:
do { \
int tmp_i; \
memcpy(&tmp_i, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_INT); \
VALUE = ntohl(tmp_i); \
} while (0)
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)

Definition at line 78 of file cas_network.h.

#define NET_ARG_GET_OBJECT (   VALUE,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
int pageid; \
short slotid, volid; \
DB_IDENTIFIER tmp_oid; \
DB_OBJECT *tmp_obj; \
int pos = NET_SIZE_INT; \
memcpy(&pageid, cur_p + pos, NET_SIZE_INT);\
pageid = ntohl(pageid); \
pos += NET_SIZE_INT; \
memcpy(&slotid, cur_p + pos, NET_SIZE_SHORT);\
slotid = ntohs(slotid); \
pos += NET_SIZE_SHORT; \
memcpy(&volid, cur_p + pos, NET_SIZE_SHORT);\
volid = ntohs(volid); \
pos += NET_SIZE_SHORT; \
tmp_oid.pageid = pageid; \
tmp_oid.slotid = slotid; \
tmp_oid.volid = volid; \
tmp_obj = db_object(&tmp_oid); \
VALUE = tmp_obj; \
} while (0)
DB_OBJECT * db_object(DB_IDENTIFIER *oid)
Definition: db_admin.c:2641
struct db_identifier DB_IDENTIFIER
Definition: dbtype_def.h:959
struct db_object DB_OBJECT
Definition: dbtype_def.h:409
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)

Definition at line 208 of file cas_network.h.

#define NET_ARG_GET_SHORT (   VALUE,
  ARG 
)
Value:
do { \
short tmp_s; \
memcpy(&tmp_s, (char*) (ARG) + NET_SIZE_INT, NET_SIZE_SHORT); \
VALUE = ntohs(tmp_s); \
} while (0)
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 85 of file cas_network.h.

#define NET_ARG_GET_SIZE (   SIZE,
  ARG 
)
Value:
do { \
int tmp_i; \
memcpy(&tmp_i, (char*) (ARG), NET_SIZE_INT); \
SIZE = ntohl(tmp_i); \
} while (0)
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)

Definition at line 54 of file cas_network.h.

#define NET_ARG_GET_STR (   VALUE,
  SIZE,
  ARG 
)
Value:
do { \
int _size; \
char *cur_p = (char*) ARG; \
memcpy(&_size, cur_p, NET_SIZE_INT); \
_size = ntohl(_size); \
cur_p += NET_SIZE_INT; \
if (_size <= 0) { \
VALUE = NULL; \
SIZE = 0; \
} else { \
VALUE = ((char*) cur_p); \
SIZE = _size; \
} \
} while (0)
#define NULL
Definition: freelistheap.h:34
if(extra_options)
Definition: dynamic_load.c:958
#define NET_SIZE_INT
Definition: cas_network.h:43
unsigned int ntohl(unsigned int from)

Definition at line 111 of file cas_network.h.

#define NET_ARG_GET_TIME (   HH,
  MM,
  SS,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
short tmp_s; \
int pos = NET_SIZE_INT + NET_SIZE_SHORT * 3; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
HH = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MM = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
SS = ntohs(tmp_s); \
} while (0)
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 142 of file cas_network.h.

#define NET_ARG_GET_TIMESTAMP (   YR,
  MON,
  DAY,
  HH,
  MM,
  SS,
  ARG 
)
Value:
do { \
char *cur_p = (char*) ARG; \
short tmp_s; \
int pos = NET_SIZE_INT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
YR = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MON = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
DAY = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
HH = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
MM = ntohs(tmp_s); \
pos += NET_SIZE_SHORT; \
memcpy(&tmp_s, cur_p + pos, NET_SIZE_SHORT); \
SS = ntohs(tmp_s); \
} while (0)
unsigned short ntohs(unsigned short from)
#define NET_SIZE_SHORT
Definition: cas_network.h:42
#define NET_SIZE_INT
Definition: cas_network.h:43

Definition at line 157 of file cas_network.h.

#define NET_DEFAULT_TIMEOUT   60

Definition at line 34 of file cas_network.h.

Referenced by cas_main(), process_request(), and shard_cas_main().

#define NET_MIN_TIMEOUT   2

Definition at line 33 of file cas_network.h.

Referenced by cas_main().

#define NET_SIZE_BIGINT   NET_SIZE_INT64
#define NET_SIZE_BYTE   ((int) sizeof(char))
#define NET_SIZE_DATE   (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT)

Definition at line 48 of file cas_network.h.

Referenced by add_res_data_date().

#define NET_SIZE_DATETIME   (NET_SIZE_SHORT * 7)
#define NET_SIZE_DOUBLE   ((int) sizeof(double))

Definition at line 45 of file cas_network.h.

Referenced by add_res_data_double(), net_arg_get_double(), and net_buf_cp_double().

#define NET_SIZE_FLOAT   ((int) sizeof(float))

Definition at line 44 of file cas_network.h.

Referenced by add_res_data_float(), net_arg_get_float(), and net_buf_cp_float().

#define NET_SIZE_INT64   ((int) sizeof(INT64))
#define NET_SIZE_OBJECT   (NET_SIZE_INT + NET_SIZE_SHORT + NET_SIZE_SHORT)

Definition at line 50 of file cas_network.h.

Referenced by add_res_data_object(), and net_buf_cp_object().

#define NET_SIZE_TIME   (NET_SIZE_SHORT + NET_SIZE_SHORT + NET_SIZE_SHORT)

Definition at line 49 of file cas_network.h.

Referenced by add_res_data_time().

#define NET_SIZE_TIMESTAMP   (NET_SIZE_SHORT * 6)

Function Documentation

bool is_net_timed_out ( void  )

Definition at line 699 of file cas_network.c.

References net_timeout_flag.

Referenced by net_read_header_keep_con_on(), net_read_int_keep_con_auto(), net_read_process(), net_read_stream(), and process_request().

Here is the caller graph for this function:

SOCKET net_connect_client ( SOCKET  srv_sock_fd)

Definition at line 260 of file cas_network.c.

References INVALID_SOCKET, IS_INVALID_SOCKET, and net_error_flag.

Referenced by cas_main().

Here is the caller graph for this function:

int net_decode_str ( char *  msg,
int  msg_size,
char *  func_code,
void ***  ret_argv 
)

Definition at line 393 of file cas_network.c.

References argc, argv, CAS_ER_COMMUNICATION, CAS_ER_NO_MORE_MEMORY, FREE_MEM, ntohl(), NULL, and REALLOC.

Referenced by process_request(), and proxy_handler_process_client_request().

Here is the caller graph for this function:

SOCKET net_init_env ( char *  port_name)

Definition at line 90 of file cas_network.c.

References CLOSE_SOCKET, htons(), INVALID_SOCKET, IS_INVALID_SOCKET, net_connect_proxy(), ntohs(), proxy_id, sock_addr_len, sock_fd, strlen, and wsa_initialize().

Referenced by cas_main().

Here is the caller graph for this function:

int net_read_header ( SOCKET  sock_fd,
MSG_HEADER header 
)
int net_read_int ( SOCKET  sock_fd,
int *  value 
)

Definition at line 383 of file cas_network.c.

References net_read_stream(), and ntohl().

Referenced by cas_main().

Here is the caller graph for this function:

int net_read_stream ( SOCKET  sock_fd,
char *  buf,
int  size 
)

Definition at line 305 of file cas_network.c.

References is_net_timed_out(), and read_buffer().

Referenced by cas_main(), net_read_header(), net_read_int(), and process_request().

Here is the caller graph for this function:

int net_read_to_file ( SOCKET  sock_fd,
int  file_size,
char *  filename 
)
void net_timeout_set ( int  timeout_sec)

Definition at line 519 of file cas_network.c.

References net_timeout, and new_req_sock_fd.

Referenced by cas_main(), net_read_header_keep_con_on(), net_read_int_keep_con_auto(), net_read_process(), process_request(), and shard_cas_main().

Here is the caller graph for this function:

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_from_file ( SOCKET  sock_fd,
int  file_size,
char *  filename 
)

Definition at line 482 of file cas_network.c.

References net_write_stream().

Referenced by process_request().

Here is the caller graph for this function:

int net_write_header ( SOCKET  sock_fd,
MSG_HEADER header 
)

Definition at line 347 of file cas_network.c.

References MSG_HEADER::buf, htonl(), MSG_HEADER::msg_body_size_ptr, MSG_HEADER_SIZE, and net_write_stream().

Referenced by cas_register_to_proxy().

Here is the caller graph for this function:

int net_write_int ( SOCKET  sock_fd,
int  value 
)

Definition at line 375 of file cas_network.c.

References htonl(), and write_buffer().

Referenced by cas_main(), cas_register_to_proxy(), and net_write_error().

Here is the caller graph for this function:

int net_write_stream ( SOCKET  sock_fd,
const char *  buf,
int  size 
)

Definition at line 283 of file cas_network.c.

References write_buffer().

Referenced by cas_main(), cas_register_to_proxy(), cas_send_connect_reply_to_driver(), net_write_error(), net_write_from_file(), net_write_header(), and process_request().

Here is the caller graph for this function: