cubrid2009/07/03 10:42

함수정의

static int css_vector_send ()

파라미터

int fd

struct iovec *vec[]

int *len

int bytes_written

호출자

-       connection_support:: css_send_io_vector

메모

-       iovec의 개수 만큼의 데이터를 연속해서 전송한다.

-       윈도우에는 writev 함수가 없으므로 직접 구현



함수정의

static int css_net_send2 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

호출자

-       connection_support:: css_send_data

-       connection_support:: css_send_oob

메모

-       두개의 데이터를 4개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send3 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

const char *buff3

int len3

호출자

-       connection_support:: css_send_oob_request_with_data_buffer

-       connection_support:: css_send_request_with_data_buffer

메모

-       3개의 데이터를 6개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send4 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

const char *buff3

int len3

const char *buff4

int len4

호출자

-       connection_support:: css_send_two_data

메모

-       4개의 데이터를 8개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send5 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

const char *buff3

int len3

const char *buff4

int len4

const char *buff5

int len5

호출자

-       connection_support:: css_send_oob_request_with_data_buffer

-       connection_support:: css_send_req_with_2_buffers

메모

-       5개의 데이터를 10개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send6 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

const char *buff3

int len3

const char *buff4

int len4

const char *buff5

int len5

const char *buff6

int len6

호출자

-       connection_support:: css_send_three_data

메모

-       6개의 데이터를 12개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send7 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

int len1

const char *buff2

int len2

const char *buff3

int len3

const char *buff4

int len4

const char *buff5

int len5

const char *buff6

int len6

const char *buff7

int len7

호출자

-       connection_support:: css_send_req_with_3_buffers

메모

-       7개의 데이터를 14개의 iov에 담아서 한번에 전송



함수정의

static int css_net_send8 ()

파라미터

CSS_CONN_ENTRY * conn

const char *buff1

 int len1

const char *buff2

int len2

const char *buff3

int len3

const char *buff4

int len4

const char *buff5

int len5

const char *buff6

int len6

const char *buff7

int len7

const char *buff8

int len8

호출자

-       connection_support:: css_send_four_data

메모

-       8개의 데이터를 16개의 iov에 담아서 한번에 전송



함수정의

static int css_sprintf_conn_infoids ()

파라미터

int fd

const char **client_user_name

const char **client_host_name,

int *client_pid

호출자

-       connection_support::css_set_networking_error

메모

-       현재 프로세스를 사용하고 있는 시스템의 호스트이름, 프로세스아이디등을 알아낸다.



함수정의

static int css_writen ()

파라미터

int fd

char *ptr

int nbytes

호출자

-       connection_support:: css_vector_send

메모

-       fd nbytes 만큼 *ptr을 보낸다.



함수정의

static void css_set_io_vector ()

파라미터

struct iovec *vec1_p

struct iovec *vec2_p

const char *buff

int len

int *templen

호출자

-       connection_support:: css_net_send

-       connection_support:: css_net_send2

-       connection_support:: css_net_send3

-       connection_support:: css_net_send4

-       connection_support:: css_net_send5

-       connection_support:: css_net_send6

-       connection_support:: css_net_send7

-       connection_support:: css_net_send8

메모

-       len vec1_p buff vec2_p에 셋팅한다.



함수정의

static int css_send_io_vector ()

파라미터

CSS_CONN_ENTRY * conn

struct iovec *vec_p

int total_len

int vector_length

호출자

-       connection_support:: css_net_send

-       connection_support:: css_net_send2

-       connection_support:: css_net_send3

-       connection_support:: css_net_send4

-       connection_support:: css_net_send5

-       connection_support:: css_net_send6

-       connection_support:: css_net_send7

-       connection_support:: css_net_send8

메모

-       iovec 데이터를 전부 전송한다.



함수정의

static void css_set_net_header ()

파라미터

NET_HEADER * header_p

int type

short function_code

int request_id

int buffer_size

int transaction_id

int db_error

호출자

-       connection_support:: css_send_data

-       connection_support:: css_send_error

-       connection_support:: css_send_oob

-       connection_support:: css_send_oob_request_with_data_buffer

-       connection_support:: css_send_req_with_2_buffers

-       connection_support:: css_send_req_with_3_buffers

-       connection_support:: css_send_request_with_data_buffer

메모

-       NET_HEADER의 데이터 셋팅



'cubrid' 카테고리의 다른 글

2.3.8.8. connection_support  (0) 2009/07/03
2.3.8.5. connection_list_cl  (0) 2009/06/25
2.3.8.2. connection_cl  (0) 2009/06/23
2.3.2.8. environment_variable  (0) 2009/06/19
Posted by redef

TRACKBACK http://www.redef.pe.kr/trackback/443 관련글 쓰기

댓글을 달아 주세요

cubrid2009/06/25 16:33

함수정의

extern void css_queue_unexpected_packet ()

파라미터

int type

CSS_CONN_ENTRY * conn

unsigned short request_id,

NET_HEADER * header

int size

호출자

-       connection_cl:: css_read_one_request

-       connection_cl:: css_receive_data

-       connection_cl:: css_receive_error

-       connection_cl:: css_receive_oob

메모

-       데이터의 타입이 현재 받는 위치에서 원하는 데이터 타입이 아닐 경우

-       CLOSE_TYPE, ABORT_TYPE, DATA_TYPE, ERROR_TYPE, COMMAND_TYPE, OOB_TYPE



함수정의

extern CSS_QUEUE_ENTRY *css_find_queue_entry ()

파라미터

CSS_QUEUE_ENTRY * header

unsigned int key

호출자

-       connection_list_cl:: css_is_request_aborted

-       connection_cl:: css_is_valid_request_id

-       connection_list_cl:: css_process_abort_packet

-       connection_cl:: css_return_data_buffer

-       connection_cl:: css_return_queued_data

-       connection_cl:: css_return_queued_error

-       connection_cl:: css_return_queued_oob

메모

-       큐 중에서 key와 일치하는 데이터를 반환한다.



함수정의

extern void css_queue_remove_header_entry ()

파라미터

CSS_QUEUE_ENTRY ** anchor

unsigned short request_id

호출자

-       connection_list_cl::css_process_abort_packet

-       connection_cl:: css_return_queued_request

메모

-       큐에서 request_id에 해당하는 아이템을 제거하고 링크드리스트를 연결



함수정의

static void css_free_queue_entry ()

파라미터

CSS_QUEUE_ENTRY * entry_p

호출자

-       connection_list_cl:: css_queue_remove_header

-       connection_list_cl:: css_queue_remove_header_entry

-       connection_list_cl:: css_queue_remove_header_entry_ptr

-       connection_sr:: css_remove_unexpected_packets

메모

-       entry_p bufferentry_p의 메모리 해제



함수정의

static void css_process_close_packet ()

파라미터

CSS_CONN_ENTRY * conn

호출자

-       connection_sr:: css_queue_packet

메모

-       CSS_CONN_ENTRY의 소켓을 종료한다.

'cubrid' 카테고리의 다른 글

2.3.8.8. connection_support  (0) 2009/07/03
2.3.8.5. connection_list_cl  (0) 2009/06/25
2.3.8.2. connection_cl  (0) 2009/06/23
2.3.2.8. environment_variable  (0) 2009/06/19
Posted by redef

TRACKBACK http://www.redef.pe.kr/trackback/442 관련글 쓰기

댓글을 달아 주세요

cubrid2009/06/23 00:59

함수정의

extern void css_shutdown_conn ()

파라미터

CSS_CONN_ENTRY * conn

호출자

-       connection_cl:: css_close_conn

-       connection_cl:: css_read_header

-       connection_cl:: css_send_close_request

-       connection_support:: css_send_io_vector

메모

-       연결정보(CSS_CONN_ENTRY)의 소켓을 닫는다.



함수정의

extern CSS_CONN_ENTRY *css_make_conn ()

파라미터

int fd

호출자

-       master:: css_accept_new_request

-       master:: css_accept_old_request

-       connection_cl:: css_connect_to_cubrid_server

-       connection_cl:: css_connect_to_master_for_info

-       connection_cl:: css_connect_to_master_server

-       master:: css_process_new_connection

-       master:: main

메모

-       새로운 CSS_CONN_ENTRY 을 할당한다.

-       이전의 CSS_CONN_ENTRY를 현재 할당된 next에 지정

-       현재 할당된 CSS_CONN_ENTRY를 임시저장



함수정의

extern void css_free_conn ()

파라미터

CSS_CONN_ENTRY * conn

호출자

-       master:: css_accept_old_request

-       connection_cl:: css_connect_to_cubrid_server

-       connection_cl:: css_connect_to_master_server

-       master:: css_free_entry

-       master:: css_send_to_existing_server

메모

-       연결정보(conn)을 초기화 하고 연결정보 리스트에서 제거한다.



함수정의

extern int css_net_send_no_block ()

파라미터

int fd

const char *buffer

int size

호출자

 

메모

-       connection_support.c에서 구현



함수정의

extern int css_net_recv ()

파라미터

int fd

char *buffer

int *maxlen

호출자

-       connection_support::css_net_read_header

-       connection_cl::css_receive_data

-       connection_cl::css_receive_error

-       connection_cl::css_receive_oob

-       connection_list_cl::css_recv_and_queue_packet

-       master::css_register_new_server2

메모

-       connection_support.c에서 구현

-       소켓으로 부터 패킷을 읽는다.



함수정의

extern int css_net_read_header ()

파라미터

int fd

char *buffer

int *maxlen

호출자

-       connection_cl:: css_read_header

-       connection_cl::css_receive_data

-       connection_cl::css_receive_error

-       connection_cl::css_receive_oob

메모

-       소켓으로 부터 NET_HEADER를 읽는다

-       connection_support.에서 구현



함수정의

extern void css_read_remaining_bytes ()

파라미터

int fd

int len

호출자

-       connection_list_cl:: css_queue_data_packet

-       connection_list_cl:: css_queue_error_packet

-       connection_list_cl:: css_queue_oob_packet

-       connection_cl:: css_receive_data

-       connection_cl:: css_receive_error

-       connection_cl:: css_receive_oob

메모

-       남아 있는 데이터를 읽는다.



함수정의

extern bool css_does_master_exist ()

파라미터

int port_id

호출자

-       util_service:: is_server_running

-       master:: main

-       util_service:: process_master

-       util_service:: process_repl_agent

-       util_service:: process_repl_server

-       util_service:: process_server

-       util_service:: process_service

메모

-       cub_master 프로세스가 존재하는지 확인한다.



함수정의

extern int css_receive_data ()

파라미터

CSS_CONN_ENTRY * conn

unsigned short rid

char **buffer

int *size

호출자

-       master:: css_accept_new_request

-       master:: css_accept_old_request

-       connection_cl:: css_connect_to_cubrid_server

-       master_request:: css_process_info_request

-       master_request:: css_process_kill_slave

-       client_support:: css_receive_data_from_server

-       master:: css_register_new_server

-       master:: css_register_new_server2

-       master:: css_send_to_existing_server

-       connection_cl:: css_server_connect_part_two

-       commdb:: return_integer_data

-       commdb:: return_string

메모

-       큐에 데이터가 있으면 해당 데이터의 buffer를 반환한다.

-       소켓으로 부터 buffer를 받아서 반환한다.



함수정의

extern int css_receive_request ()

파라미터

CSS_CONN_ENTRY * conn

unsigned short *rid

int *request

int *arg_buffer_size

호출자

-       master_request::css_process_info_request

-       master::css_process_new_connection

메모

-       새로운 요청정보를 읽어들인다.



함수정의

extern CSS_CONN_ENTRY *css_find_conn_from_fd ()

파라미터

int fd

호출자

-       connection_support::css_sprintf_conn_infoids

메모

-       소켓 디스크립터(fd)가 속해있는 연결정보(CSS_CONN_ENTRY)를 리턴한다.

-       없으면 NULL을 리턴한다.



함수정의

extern int css_readn ()

파라미터

int fd

char *ptr

int nbytes

호출자

-       connection_cl:: css_connect_to_master_server

-       connection_support:: css_net_recv

-       connection_support::css_read_remaining_bytes

메모

-       디스크립터(fd)로 부터 nbytes만큼 읽는다.

-       오류가 발생하면 < 0 값을 리턴한다.

-       정상적으로 받게 되면 >= 0 값을 리턴한다.

-       >0 값을 리턴하면 아직 받을게 남아있음



함수정의

extern char *css_return_data_buffer ()

파라미터

CSS_CONN_ENTRY * conn

unsigned short request_id

int *buffer_size

호출자

-       connection_list_cl:: css_queue_data_packet

-       connection_cl:: css_receive_data

-       connection_cl:: css_receive_error

메모

-       버퍼큐에 request_id와 일치하는 데이터가 있으면 버퍼를 반환

-       없으면 새로운 버퍼를 할당해서 반환



함수정의

static void css_initialize_conn ()

파라미터

CSS_CONN_ENTRY * conn

int fd

호출자

-       connection_cl:: css_close_conn

-       connection_cl:: css_make_conn

메모

-       할당된 CSS_CONN_ENTRY 의 초기화



함수정의

static void css_close_conn ()

파라미터

CSS_CONN_ENTRY * conn

호출자

-       connection_cl:: css_connect_to_cubrid_server

-       connection_cl:: css_free_conn

메모

-       연결정보(CSS_CONN_ENTRY)의 소켓을 닫고, 연결정보를 초기화 한다.



함수정의

static void css_dealloc_conn ()

파라미터

CSS_CONN_ENTRY * conn

호출자

-       connection_cl:: css_free_conn

메모

-       연결정보 리스트에서 현재 연결정보(conn)을 제거한다.



함수정의

static int css_read_header ()

파라미터

CSS_CONN_ENTRY * conn

NET_HEADER * local_header

호출자

-       connection_cl::css_read_one_request

메모

-       소켓으로 부터 NET_HEADER를 읽어들인다.



함수정의

static int css_read_one_request ()

파라미터

CSS_CONN_ENTRY * conn

unsigned short *rid

int *request

int *buffer_size

호출자

-       connection_cl::css_receive_request

메모

-       소켓이나 큐로부터 하나의 요청정보를 반환한다.

-       네트워크를 통해 보내기위한 명령패킷의 헤더형식인 NET_HEADER를 이용한다.



함수정의

static int css_return_queued_request ()

파라미터

CSS_CONN_ENTRY * conn : 요청정보가 들어있는 테이블

unsigned short *rid,

int *request

int *buffer_size

호출자

-       connection_cl:: css_read_one_request

메모

-       큐에 요청데이터가 있으면 요청정보를 파라미터로 넘어온 포인터에 담아서 리턴한다.

-       요청정보가 있으면 리턴값(rc)으로 1을 리턴한다.

'cubrid' 카테고리의 다른 글

2.3.8.5. connection_list_cl  (0) 2009/06/25
2.3.8.2. connection_cl  (0) 2009/06/23
2.3.2.8. environment_variable  (0) 2009/06/19
2.3.3.10. broker_getopt  (0) 2009/06/17
Posted by redef

TRACKBACK http://www.redef.pe.kr/trackback/441 관련글 쓰기

댓글을 달아 주세요