Skip to content

File shard_proxy_handler.c

FileList > broker > shard_proxy_handler.c

Go to the source code of this file

  • #include <assert.h>
  • #include "broker_config.h"
  • #include "broker_shm.h"
  • #include "shard_proxy_common.h"
  • #include "cas_protocol.h"
  • #include "cas_error.h"
  • #include "shard_shm.h"
  • #include "shard_proxy_handler.h"
  • #include "shard_proxy_io.h"
  • #include "shard_proxy_queue.h"
  • #include "shard_parser.h"
  • #include "shard_proxy_function.h"

Public Attributes

Type Name
SP_PARSER_CTX * parser = [**NULL**](freelistheap_8h.md#define-null)
T_PROXY_CONTEXT_GLOBAL proxy_Context
T_PROXY_HANDLER proxy_Handler
T_PROXY_INFO * proxy_info_p
T_SHM_APPL_SERVER * shm_as_p
T_SHM_PROXY * shm_proxy_p

Public Static Attributes

Type Name
T_PROXY_CAS_FUNC proxy_cas_fn_table
T_PROXY_CLIENT_FUNC proxy_client_fn_table

Public Functions

Type Name
T_CONTEXT_STMT * proxy_context_add_stmt (T_PROXY_CONTEXT * ctx_p, T_SHARD_STMT * stmt_p)
void proxy_context_clear_error (T_PROXY_CONTEXT * ctx_p)
T_PROXY_CONTEXT * proxy_context_find (int cid, unsigned int uid)
T_PROXY_CONTEXT * proxy_context_find_by_socket_client_io (T_SOCKET_IO * sock_io_p)
T_CONTEXT_STMT * proxy_context_find_stmt (T_PROXY_CONTEXT * ctx_p, int stmt_h_id)
void proxy_context_free (T_PROXY_CONTEXT * ctx_p)
void proxy_context_free_by_cid (int cid, unsigned int uid)
void proxy_context_free_stmt (T_PROXY_CONTEXT * ctx_p)
T_PROXY_CONTEXT * proxy_context_new (void)
int proxy_context_send_error (T_PROXY_CONTEXT * ctx_p)
void proxy_context_set_error (T_PROXY_CONTEXT * ctx_p, int error_ind, int error_code)
void proxy_context_set_error_with_msg (T_PROXY_CONTEXT * ctx_p, int error_ind, int error_code, const char * error_msg)
void proxy_context_set_in_tran (T_PROXY_CONTEXT * ctx_p, int shard_id, int cas_id)
void proxy_context_set_out_tran (T_PROXY_CONTEXT * ctx_p)
void proxy_context_timeout (T_PROXY_CONTEXT * ctx_p)
int proxy_event_alloc_buffer (T_PROXY_EVENT * event_p, unsigned int size)
T_PROXY_EVENT * proxy_event_dup (T_PROXY_EVENT * event_p)
void proxy_event_free (T_PROXY_EVENT * event_p)
bool proxy_event_io_read_complete (T_PROXY_EVENT * event_p)
bool proxy_event_io_write_complete (T_PROXY_EVENT * event_p)
T_PROXY_EVENT * proxy_event_new (unsigned int type, int from_cas)
T_PROXY_EVENT * proxy_event_new_with_error (char * driver_info, unsigned int type, int from, int(*)(char *driver_info, char **buffer, int error_ind, int error_code, const char *error_msg, char is_in_tran) err_func, int error_ind, int error_code, const char * error_msg, char is_in_tran)
T_PROXY_EVENT * proxy_event_new_with_req (char * driver_info, unsigned int type, int from, T_PROXY_EVENT_FUNC req_func)
T_PROXY_EVENT * proxy_event_new_with_rsp (char * driver_info, unsigned int type, int from, T_PROXY_EVENT_FUNC resp_func)
T_PROXY_EVENT * proxy_event_new_with_rsp_ex (char * driver_info, unsigned int type, int from, T_PROXY_EVENT_FUNC_EX resp_func, void * argv)
int proxy_event_realloc_buffer (T_PROXY_EVENT * event_p, unsigned int size)
void proxy_event_set_buffer (T_PROXY_EVENT * event_p, char * data, unsigned int size)
void proxy_event_set_context (T_PROXY_EVENT * event_p, int cid, unsigned int uid)
void proxy_event_set_shard (T_PROXY_EVENT * event_p, int shard_id, int cas_id)
void proxy_event_set_type_from (T_PROXY_EVENT * event_p, unsigned int type, int from_cas)
void proxy_handler_destroy (void)
int proxy_handler_initialize (void)
bool proxy_handler_is_cas_in_tran (int shard_id, int cas_id)
void proxy_handler_process (void)
char * proxy_str_context (T_PROXY_CONTEXT * ctx_p)
char * proxy_str_event (T_PROXY_EVENT * event_p)
void proxy_timer_process (void)
int proxy_waiter_comp_fn (const void * arg1, const void * arg2)
void proxy_waiter_free (T_WAIT_CONTEXT * waiter)
T_WAIT_CONTEXT * proxy_waiter_new (int ctx_cid, unsigned int ctx_uid, int timeout)
void proxy_waiter_timeout (T_SHARD_QUEUE * waitq, INT64 * counter, int now)
int proxy_wakeup_context_by_shard (T_WAIT_CONTEXT * waiter_p, int shard_id, int cas_id)
int proxy_wakeup_context_by_statement (T_WAIT_CONTEXT * waiter_p)
char * shard_str_sqls (char * sql)

Public Static Functions

Type Name
void proxy_context_clear (T_PROXY_CONTEXT * ctx_p)
void proxy_context_destroy (void)
void proxy_context_free_client (T_PROXY_CONTEXT * ctx_p)
void proxy_context_free_shard (T_PROXY_CONTEXT * ctx_p)
int proxy_context_initialize (void)
void proxy_handler_process_cas_conn_error (T_PROXY_EVENT * event_p)
int proxy_handler_process_cas_error (T_PROXY_EVENT * event_p)
void proxy_handler_process_cas_event (T_PROXY_EVENT * event_p)
void proxy_handler_process_cas_response (T_PROXY_EVENT * event_p)
void proxy_handler_process_client_conn_error (T_PROXY_EVENT * event_p)
void proxy_handler_process_client_event (T_PROXY_EVENT * event_p)
void proxy_handler_process_client_request (T_PROXY_EVENT * event_p)
void proxy_handler_process_client_wakeup_by_shard (T_PROXY_EVENT * event_p)
void proxy_handler_process_client_wakeup_by_statement (T_PROXY_EVENT * event_p)

Macros

Type Name
define PROXY_MAX_IGNORE_TIMER_CHECK 10
define PROXY_TIMER_CHECK_INTERVAL 1 /\* sec \*/

Public Attributes Documentation

variable parser

SP_PARSER_CTX* parser;

variable proxy_Context

T_PROXY_CONTEXT_GLOBAL proxy_Context;

variable proxy_Handler

T_PROXY_HANDLER proxy_Handler;

variable proxy_info_p

T_PROXY_INFO* proxy_info_p;

variable shm_as_p

T_SHM_APPL_SERVER* shm_as_p;

variable shm_proxy_p

T_SHM_PROXY* shm_proxy_p;

Public Static Attributes Documentation

variable proxy_cas_fn_table

T_PROXY_CAS_FUNC proxy_cas_fn_table[];

variable proxy_client_fn_table

T_PROXY_CLIENT_FUNC proxy_client_fn_table[];

Public Functions Documentation

function proxy_context_add_stmt

T_CONTEXT_STMT * proxy_context_add_stmt (
    T_PROXY_CONTEXT * ctx_p,
    T_SHARD_STMT * stmt_p
) 

function proxy_context_clear_error

void proxy_context_clear_error (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_find

T_PROXY_CONTEXT * proxy_context_find (
    int cid,
    unsigned  int uid
) 

function proxy_context_find_by_socket_client_io

T_PROXY_CONTEXT * proxy_context_find_by_socket_client_io (
    T_SOCKET_IO * sock_io_p
) 

function proxy_context_find_stmt

T_CONTEXT_STMT * proxy_context_find_stmt (
    T_PROXY_CONTEXT * ctx_p,
    int stmt_h_id
) 

function proxy_context_free

void proxy_context_free (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_free_by_cid

void proxy_context_free_by_cid (
    int cid,
    unsigned  int uid
) 

function proxy_context_free_stmt

void proxy_context_free_stmt (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_new

T_PROXY_CONTEXT * proxy_context_new (
    void
) 

function proxy_context_send_error

int proxy_context_send_error (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_set_error

void proxy_context_set_error (
    T_PROXY_CONTEXT * ctx_p,
    int error_ind,
    int error_code
) 

function proxy_context_set_error_with_msg

void proxy_context_set_error_with_msg (
    T_PROXY_CONTEXT * ctx_p,
    int error_ind,
    int error_code,
    const  char * error_msg
) 

function proxy_context_set_in_tran

void proxy_context_set_in_tran (
    T_PROXY_CONTEXT * ctx_p,
    int shard_id,
    int cas_id
) 

function proxy_context_set_out_tran

void proxy_context_set_out_tran (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_timeout

void proxy_context_timeout (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_event_alloc_buffer

int proxy_event_alloc_buffer (
    T_PROXY_EVENT * event_p,
    unsigned  int size
) 

function proxy_event_dup

T_PROXY_EVENT * proxy_event_dup (
    T_PROXY_EVENT * event_p
) 

function proxy_event_free

void proxy_event_free (
    T_PROXY_EVENT * event_p
) 

function proxy_event_io_read_complete

bool proxy_event_io_read_complete (
    T_PROXY_EVENT * event_p
) 

function proxy_event_io_write_complete

bool proxy_event_io_write_complete (
    T_PROXY_EVENT * event_p
) 

function proxy_event_new

T_PROXY_EVENT * proxy_event_new (
    unsigned  int type,
    int from_cas
) 

function proxy_event_new_with_error

T_PROXY_EVENT * proxy_event_new_with_error (
    char * driver_info,
    unsigned  int type,
    int from,
    int (*)( char *driver_info, char **buffer, int error_ind, int error_code, const  char *error_msg, char is_in_tran) err_func,
    int error_ind,
    int error_code,
    const  char * error_msg,
    char is_in_tran
) 

function proxy_event_new_with_req

T_PROXY_EVENT * proxy_event_new_with_req (
    char * driver_info,
    unsigned  int type,
    int from,
    T_PROXY_EVENT_FUNC req_func
) 

function proxy_event_new_with_rsp

T_PROXY_EVENT * proxy_event_new_with_rsp (
    char * driver_info,
    unsigned  int type,
    int from,
    T_PROXY_EVENT_FUNC resp_func
) 

function proxy_event_new_with_rsp_ex

T_PROXY_EVENT * proxy_event_new_with_rsp_ex (
    char * driver_info,
    unsigned  int type,
    int from,
    T_PROXY_EVENT_FUNC_EX resp_func,
    void * argv
) 

function proxy_event_realloc_buffer

int proxy_event_realloc_buffer (
    T_PROXY_EVENT * event_p,
    unsigned  int size
) 

function proxy_event_set_buffer

void proxy_event_set_buffer (
    T_PROXY_EVENT * event_p,
    char * data,
    unsigned  int size
) 

function proxy_event_set_context

void proxy_event_set_context (
    T_PROXY_EVENT * event_p,
    int cid,
    unsigned  int uid
) 

function proxy_event_set_shard

void proxy_event_set_shard (
    T_PROXY_EVENT * event_p,
    int shard_id,
    int cas_id
) 

function proxy_event_set_type_from

void proxy_event_set_type_from (
    T_PROXY_EVENT * event_p,
    unsigned  int type,
    int from_cas
) 

function proxy_handler_destroy

void proxy_handler_destroy (
    void
) 

function proxy_handler_initialize

int proxy_handler_initialize (
    void
) 

function proxy_handler_is_cas_in_tran

bool proxy_handler_is_cas_in_tran (
    int shard_id,
    int cas_id
) 

function proxy_handler_process

void proxy_handler_process (
    void
) 

function proxy_str_context

char * proxy_str_context (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_str_event

char * proxy_str_event (
    T_PROXY_EVENT * event_p
) 

function proxy_timer_process

void proxy_timer_process (
    void
) 

function proxy_waiter_comp_fn

int proxy_waiter_comp_fn (
    const  void * arg1,
    const  void * arg2
) 

function proxy_waiter_free

void proxy_waiter_free (
    T_WAIT_CONTEXT * waiter
) 

function proxy_waiter_new

T_WAIT_CONTEXT * proxy_waiter_new (
    int ctx_cid,
    unsigned  int ctx_uid,
    int timeout
) 

function proxy_waiter_timeout

void proxy_waiter_timeout (
    T_SHARD_QUEUE * waitq,
    INT64 * counter,
    int now
) 

function proxy_wakeup_context_by_shard

int proxy_wakeup_context_by_shard (
    T_WAIT_CONTEXT * waiter_p,
    int shard_id,
    int cas_id
) 

function proxy_wakeup_context_by_statement

int proxy_wakeup_context_by_statement (
    T_WAIT_CONTEXT * waiter_p
) 

function shard_str_sqls

char * shard_str_sqls (
    char * sql
) 

Public Static Functions Documentation

function proxy_context_clear

static void proxy_context_clear (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_destroy

static void proxy_context_destroy (
    void
) 

function proxy_context_free_client

static void proxy_context_free_client (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_free_shard

static void proxy_context_free_shard (
    T_PROXY_CONTEXT * ctx_p
) 

function proxy_context_initialize

static int proxy_context_initialize (
    void
) 

function proxy_handler_process_cas_conn_error

static void proxy_handler_process_cas_conn_error (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_cas_error

static int proxy_handler_process_cas_error (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_cas_event

static void proxy_handler_process_cas_event (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_cas_response

static void proxy_handler_process_cas_response (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_client_conn_error

static void proxy_handler_process_client_conn_error (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_client_event

static void proxy_handler_process_client_event (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_client_request

static void proxy_handler_process_client_request (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_client_wakeup_by_shard

static void proxy_handler_process_client_wakeup_by_shard (
    T_PROXY_EVENT * event_p
) 

function proxy_handler_process_client_wakeup_by_statement

static void proxy_handler_process_client_wakeup_by_statement (
    T_PROXY_EVENT * event_p
) 

Macro Definition Documentation

define PROXY_MAX_IGNORE_TIMER_CHECK

#define PROXY_MAX_IGNORE_TIMER_CHECK `10`

define PROXY_TIMER_CHECK_INTERVAL

#define PROXY_TIMER_CHECK_INTERVAL `1   /* sec */`


The documentation for this class was generated from the following file cubrid/src/broker/shard_proxy_handler.c