PokerUnicorn
Loading...
Searching...
No Matches
TCP & WebSocket Server (TLS)

Server module can handle both TCP and WebSocket connections over TLS. More...

Data Structures

struct  pkrsrv_server_packet_enter_t
 
struct  pkrsrv_server_packet_leave_t
 
struct  pkrsrv_server_packet_join_t
 
struct  pkrsrv_server_packet_unjoin_t
 
struct  pkrsrv_server_packet_poker_action_t
 
struct  pkrsrv_server_packet_get_tables_t
 
struct  pkrsrv_server_packet_get_sessions_t
 
struct  pkrsrv_server_packet_json_t
 
struct  on_client_connected_params_t
 
struct  on_client_disconnected_params_t
 
struct  on_client_meowed_params_t
 
struct  on_client_enter_params_t
 
struct  on_client_leave_params_t
 
struct  on_client_join_params_t
 
struct  on_client_unjoin_params_t
 
struct  on_client_action_params_t
 
struct  on_client_get_tables_params_t
 
struct  on_client_get_sessions_params_t
 
struct  on_client_json_params_t
 
struct  pkrsrv_server_t
 
struct  pkrsrv_server_clients_t
 
struct  pkrsrv_server_client_t
 
struct  pkrsrv_server_new_params_t
 
struct  pkrsrv_server_send_enter_res_params_t
 
struct  pkrsrv_server_send_leave_res_params_t
 
struct  pkrsrv_server_send_join_res_params_t
 
struct  pkrsrv_server_send_unjoin_res_params_t
 
struct  pkrsrv_server_send_poker_info_params_t
 
struct  pkrsrv_server_send_poker_state_params_t
 
struct  pkrsrv_server_send_poker_action_reflection_params_t
 
struct  pkrsrv_server_send_poker_end_params_t
 
struct  pkrsrv_server_send_poker_restarted_params_t
 
struct  pkrsrv_server_send_unjoined_params_t
 
struct  pkrsrv_server_send_tables_params_t
 
struct  pkrsrv_server_send_sessions_params_t
 
struct  pkrsrv_server_send_server_info_params_t
 
struct  pkrsrv_server_send_json_params_t
 

Typedefs

typedef struct pkrsrv_server_packet_frame_header pkrsrv_server_packet_frame_header_t
 
typedef struct pkrsrv_server_packet_frame_login pkrsrv_server_packet_frame_login_t
 
typedef struct pkrsrv_server_packet_frame_login_res pkrsrv_server_packet_frame_login_res_t
 
typedef struct pkrsrv_server_packet_frame_login_res_account pkrsrv_server_packet_frame_login_res_account_t
 
typedef struct pkrsrv_server_packet_frame_signup pkrsrv_server_packet_frame_signup_t
 
typedef struct pkrsrv_server_packet_frame_signup_res pkrsrv_server_packet_frame_signup_res_t
 
typedef struct pkrsrv_server_packet_frame_signup_res_account pkrsrv_server_packet_frame_signup_res_account_t
 
typedef struct pkrsrv_server_packet_frame_account pkrsrv_server_packet_frame_account_t
 
typedef struct pkrsrv_server_packet_frame_enter pkrsrv_server_packet_frame_enter_t
 
typedef struct pkrsrv_server_packet_frame_enter_res pkrsrv_server_packet_frame_enter_res_t
 
typedef struct pkrsrv_server_packet_frame_leave pkrsrv_server_packet_frame_leave_t
 
typedef struct pkrsrv_server_packet_frame_leave_res pkrsrv_server_packet_frame_leave_res_t
 
typedef struct pkrsrv_server_packet_frame_join pkrsrv_server_packet_frame_join_t
 
typedef struct pkrsrv_server_packet_frame_join_res pkrsrv_server_packet_frame_join_res_t
 
typedef struct pkrsrv_server_packet_frame_unjoin pkrsrv_server_packet_frame_unjoin_t
 
typedef struct pkrsrv_server_packet_frame_unjoin_res pkrsrv_server_packet_frame_unjoin_res_t
 
typedef struct pkrsrv_server_packet_frame_poker_info pkrsrv_server_packet_frame_poker_info_t
 
typedef struct pkrsrv_server_packet_frame_poker_info_player pkrsrv_server_packet_frame_poker_info_player_t
 
typedef struct pkrsrv_server_packet_frame_poker_state pkrsrv_server_packet_frame_poker_state_t
 
typedef struct pkrsrv_server_packet_frame_poker_state_player pkrsrv_server_packet_frame_poker_state_player_t
 
typedef struct pkrsrv_server_packet_frame_poker_action pkrsrv_server_packet_frame_poker_action_t
 
typedef struct pkrsrv_server_packet_frame_poker_action_reflection pkrsrv_server_packet_frame_poker_action_reflection_t
 
typedef struct pkrsrv_server_packet_frame_poker_end pkrsrv_server_packet_frame_poker_end_t
 
typedef struct pkrsrv_server_packet_frame_poker_end_score pkrsrv_server_packet_frame_poker_end_score_t
 
typedef struct pkrsrv_server_packet_frame_poker_restarted pkrsrv_server_packet_frame_poker_restarted_t
 
typedef struct pkrsrv_server_packet_frame_unjoined pkrsrv_server_packet_frame_unjoined_t
 
typedef struct pkrsrv_server_packet_frame_get_tables pkrsrv_server_packet_frame_get_tables_t
 
typedef struct pkrsrv_server_packet_frame_tables pkrsrv_server_packet_frame_tables_t
 
typedef struct pkrsrv_server_packet_frame_get_sessions pkrsrv_server_packet_frame_get_sessions_t
 
typedef struct pkrsrv_server_packet_frame_sessions pkrsrv_server_packet_frame_sessions_t
 
typedef struct pkrsrv_server_packet_frame_table pkrsrv_server_packet_frame_table_t
 
typedef struct pkrsrv_server_packet_frame_update_account pkrsrv_server_packet_frame_update_account_t
 
typedef struct pkrsrv_server_packet_frame_update_account_res pkrsrv_server_packet_frame_update_account_res_t
 
typedef struct pkrsrv_server_packet_frame_server_info pkrsrv_server_packet_frame_server_info_t
 
typedef uint32_t pkrsrv_server_opcode_t
 
typedef void(* opcode_handler_t) (pkrsrv_server_client_t *client, pkrsrv_server_packet_frame_header_t req_header)
 

Enumerations

enum  PKRSRV_SERVER_OPCODE {
  PKRSRV_SERVER_OPCODE_NOP = 0 , PKRSRV_SERVER_OPCODE_MEOW , PKRSRV_SERVER_OPCODE_PING , PKRSRV_SERVER_OPCODE_PONG ,
  PKRSRV_SERVER_OPCODE_LOGIN , PKRSRV_SERVER_OPCODE_LOGIN_RES , PKRSRV_SERVER_OPCODE_SIGNUP , PKRSRV_SERVER_OPCODE_SIGNUP_RES ,
  PKRSRV_SERVER_OPCODE_GET_ACCOUNT , PKRSRV_SERVER_OPCODE_ACCOUNT , PKRSRV_SERVER_OPCODE_ENTER , PKRSRV_SERVER_OPCODE_ENTER_RES ,
  PKRSRV_SERVER_OPCODE_LEAVE , PKRSRV_SERVER_OPCODE_LEAVE_RES , PKRSRV_SERVER_OPCODE_JOIN , PKRSRV_SERVER_OPCODE_JOIN_RES ,
  PKRSRV_SERVER_OPCODE_UNJOIN , PKRSRV_SERVER_OPCODE_UNJOIN_RES , PKRSRV_SERVER_OPCODE_POKER_INFO , PKRSRV_SERVER_OPCODE_POKER_STATE ,
  PKRSRV_SERVER_OPCODE_POKER_ACTION , PKRSRV_SERVER_OPCODE_POKER_ACTION_REFLECTION , PKRSRV_SERVER_OPCODE_POKER_END , PKRSRV_SERVER_OPCODE_POKER_RESTARTED ,
  PKRSRV_SERVER_OPCODE_JSON , PKRSRV_SERVER_OPCODE_UNJOINED , PKRSRV_SERVER_OPCODE_GET_TABLES , PKRSRV_SERVER_OPCODE_TABLES ,
  PKRSRV_SERVER_OPCODE_GET_SESSIONS , PKRSRV_SERVER_OPCODE_SESSIONS , PKRSRV_SERVER_OPCODE_UPDATE_ACCOUNT , PKRSRV_SERVER_OPCODE_UPDATE_ACCOUNT_RES ,
  PKRSRV_SERVER_OPCODE_SERVER_INFO , PKRSRV_SERVER_OPCODE_OVER_CAPACITY , PKRSRV_SERVER_OPCODE_END
}
 
enum  pkrsrv_server_packet_signup_res_status_t { PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_OK = 0 , PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_ERROR , PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_ALREADY_EXISTS }
 

Functions

struct __attribute__ ((__packed__)) pkrsrv_server_packet_frame_header
 
int pkrsrv_server_ssl_read (SSL *ssl, void *buffer, ssize_t length)
 
int pkrsrv_server_ssl_write (SSL *ssl, void *buffer, ssize_t length)
 
int pkrsrv_server_net_read (pkrsrv_server_client_t *client, void *buffer, ssize_t length)
 
int pkrsrv_server_net_write (pkrsrv_server_client_t *client, void *buffer, ssize_t length)
 
pkrsrv_server_clients_t * pkrsrv_server_clients_new ()
 
void pkrsrv_server_add_client (pkrsrv_server_t *server, pkrsrv_server_client_t *client)
 
void pkrsrv_server_add_client__ts (pkrsrv_server_t *server, pkrsrv_server_client_t *client)
 
void pkrsrv_server_remove_client (pkrsrv_server_t *server, pkrsrv_server_client_t *client)
 
void pkrsrv_server_remove_client__ts (pkrsrv_server_t *server, pkrsrv_server_client_t *client)
 
pkrsrv_server_client_t * pkrsrv_server_client_new (pkrsrv_server_t *server)
 
void pkrsrv_server_client_free (pkrsrv_server_client_t *client)
 
bool pkrsrv_server_send_binary (pkrsrv_server_client_t *client, uint8_t *data, size_t size)
 
bool pkrsrv_server_send_over_capacity (pkrsrv_server_client_t *client)
 
bool pkrsrv_server_send_pong (pkrsrv_server_client_t *client)
 
bool pkrsrv_server_send_login_res (pkrsrv_server_send_login_res_params_t params)
 
bool pkrsrv_server_send_signup_res (pkrsrv_server_send_signup_res_params_t params)
 
bool pkrsrv_server_send_account (pkrsrv_server_send_account_params_t params)
 
bool pkrsrv_server_send_enter_res (pkrsrv_server_send_enter_res_params_t params)
 
bool pkrsrv_server_send_leave_res (pkrsrv_server_send_leave_res_params_t params)
 
bool pkrsrv_server_send_join_res (pkrsrv_server_send_join_res_params_t params)
 
bool pkrsrv_server_send_unjoin_res (pkrsrv_server_send_unjoin_res_params_t params)
 
bool pkrsrv_server_send_poker_info (pkrsrv_server_send_poker_info_params_t params)
 
bool pkrsrv_server_send_poker_info_player (pkrsrv_server_client_t *p_client, pkrsrv_poker_player_t *p_player)
 
bool pkrsrv_server_send_poker_state (pkrsrv_server_send_poker_state_params_t params)
 
bool pkrsrv_server_send_poker_state_player (pkrsrv_server_client_t *p_client, pkrsrv_poker_player_t *p_player)
 
bool pkrsrv_server_send_poker_action_reflection (pkrsrv_server_send_poker_action_reflection_params_t params)
 
bool pkrsrv_server_send_poker_end (pkrsrv_server_send_poker_end_params_t params)
 
bool pkrsrv_server_send_poker_restarted (pkrsrv_server_send_poker_restarted_params_t params)
 
bool pkrsrv_server_send_unjoined (pkrsrv_server_send_unjoined_params_t params)
 
bool pkrsrv_server_send_tables (pkrsrv_server_send_tables_params_t params)
 
bool pkrsrv_server_send_sessions (pkrsrv_server_send_sessions_params_t params)
 
bool pkrsrv_server_send_update_account_res (pkrsrv_server_send_update_account_res_params_t params)
 
bool pkrsrv_server_send_server_info (pkrsrv_server_send_server_info_params_t params)
 
bool pkrsrv_server_send_json (pkrsrv_server_send_json_params_t params)
 
pkrsrv_server_t * pkrsrv_server_t::pkrsrv_server_new (pkrsrv_server_new_params_t params)
 
void pkrsrv_server_t::pkrsrv_server_start (pkrsrv_server_t *server)
 
void pkrsrv_server_t::pkrsrv_server_listen (pkrsrv_server_t *server)
 
void pkrsrv_server_t::pkrsrv_server_free (pkrsrv_server_t *server)
 

Detailed Description

Server module can handle both TCP and WebSocket connections over TLS.


Data Structure Documentation

◆ pkrsrv_server_packet_login_t

struct pkrsrv_server_packet_login_t
Data Fields
pkrsrv_string_t * id_token
pkrsrv_string_t * password

◆ pkrsrv_server_packet_signup_t

struct pkrsrv_server_packet_signup_t
Data Fields
pkrsrv_string_t * id_token
pkrsrv_string_t * password
pkrsrv_string_t * name
uint32_t avatar_length
pkrsrv_string_t * avatar

◆ pkrsrv_server_packet_enter_t

struct pkrsrv_server_packet_enter_t
Data Fields
uint64_t table_id

◆ pkrsrv_server_packet_leave_t

struct pkrsrv_server_packet_leave_t
Data Fields
uint64_t table_id

◆ pkrsrv_server_packet_join_t

struct pkrsrv_server_packet_join_t
Data Fields
uint64_t table_id
uint64_t enterance_amount
uint8_t position

◆ pkrsrv_server_packet_unjoin_t

struct pkrsrv_server_packet_unjoin_t
Data Fields
uint64_t table_id

◆ pkrsrv_server_packet_poker_action_t

struct pkrsrv_server_packet_poker_action_t
Data Fields
uint64_t table_id
uint16_t action_kind
uint64_t amount

◆ pkrsrv_server_packet_get_tables_t

struct pkrsrv_server_packet_get_tables_t
Data Fields
uint16_t offset
uint16_t length

◆ pkrsrv_server_packet_get_sessions_t

struct pkrsrv_server_packet_get_sessions_t
Data Fields
uint16_t offset
uint16_t length

◆ pkrsrv_server_packet_json_t

struct pkrsrv_server_packet_json_t
Data Fields
pkrsrv_string_t * json

◆ pkrsrv_server_packet_update_account_t

struct pkrsrv_server_packet_update_account_t
Data Fields
pkrsrv_string_t * name
pkrsrv_string_t * avatar

◆ on_client_connected_params_t

struct on_client_connected_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client

◆ on_client_disconnected_params_t

struct on_client_disconnected_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client

◆ on_client_meowed_params_t

struct on_client_meowed_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client

◆ on_client_enter_params_t

struct on_client_enter_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_enter_t enter

◆ on_client_leave_params_t

struct on_client_leave_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_leave_t leave

◆ on_client_join_params_t

struct on_client_join_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_join_t join

◆ on_client_unjoin_params_t

struct on_client_unjoin_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_unjoin_t unjoin

◆ on_client_login_params_t

struct on_client_login_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_login_t login

◆ on_client_signup_params_t

struct on_client_signup_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_signup_t signup

◆ on_client_get_account_params_t

struct on_client_get_account_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client

◆ on_client_action_params_t

struct on_client_action_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_poker_action_t action

◆ on_client_get_tables_params_t

struct on_client_get_tables_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_get_tables_t get_tables

◆ on_client_get_sessions_params_t

struct on_client_get_sessions_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_get_sessions_t get_sessions

◆ on_client_update_account_params_t

struct on_client_update_account_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_update_account_t update_account

◆ on_client_json_params_t

struct on_client_json_params_t
Data Fields
void * owner
pkrsrv_server_client_t * client
pkrsrv_server_packet_json_t json

◆ pkrsrv_server

struct pkrsrv_server

Server object

+ Inheritance diagram for pkrsrv_server_t:

Public Member Functions

pkrsrv_server_t * pkrsrv_server_new (pkrsrv_server_new_params_t params)
 
void pkrsrv_server_start (pkrsrv_server_t *server)
 
void pkrsrv_server_listen (pkrsrv_server_t *server)
 
void pkrsrv_server_free (pkrsrv_server_t *server)
 
- Public Member Functions inherited from pkrsrv_ref_counted_t
#define PKRSRV_REF_COUNTED_INIT(obj, free_f)    pkrsrv_ref_counted_init(&(obj->ref_counted), (pkrsrv_ref_free_f_t) free_f);
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
#define PKRSRV_REF_COUNTED_USE(obj)
 Increments the reference count of a reference-counted object.
 
#define PKRSRV_REF_COUNTED_LEAVE(obj)
 Decrements the reference count of a reference-counted object.
 

Data Fields

pkrsrv_ref_counted_t ref_counted
 
void * owner
 
pkrsrv_eventloop_t * eventloop
 
int port
 
char * bind_address
 
char * host_address
 
int max_clients
 
pkrsrv_server_clients_t * clients
 
SSL_CTX * ssl_ctx
 
void(* on_client_connected )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_disconnected )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_meowed )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_login )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_signup )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_get_account )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_enter )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_leave )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_join )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_unjoin )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_action )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_get_tables )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_get_sessions )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_update_account )(pkrsrv_eventloop_task_t *task)
 
void(* on_client_json )(pkrsrv_eventloop_task_t *task)
 
pthread_mutex_t mutex
 
pthread_t thread
 
bool is_running
 
- Data Fields inherited from pkrsrv_ref_counted_t
int count
 
pkrsrv_ref_free_f_t free_f
 
pthread_mutex_t mutex
 

Additional Inherited Members

- Protected Member Functions inherited from pkrsrv_ref_counted_t
void pkrsrv_ref_counted_init (pkrsrv_ref_counted_t *ref_counted, pkrsrv_ref_free_f_t free_f)
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
void pkrsrv_ref_counted_use (pkrsrv_ref_counted_t *ref_counted)
 Increments the reference count of a reference-counted object.
 
void pkrsrv_ref_counted_leave (void **obj_vp, pkrsrv_ref_counted_t *ref_counted)
 Decrements the reference count of a reference-counted object.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_server_t::ref_counted

◆ owner

void* pkrsrv_server_t::owner

◆ eventloop

pkrsrv_eventloop_t* pkrsrv_server_t::eventloop

◆ port

int pkrsrv_server_t::port

◆ bind_address

char* pkrsrv_server_t::bind_address

◆ host_address

char* pkrsrv_server_t::host_address

◆ max_clients

int pkrsrv_server_t::max_clients

◆ clients

pkrsrv_server_clients_t* pkrsrv_server_t::clients

◆ ssl_ctx

SSL_CTX* pkrsrv_server_t::ssl_ctx

◆ on_client_connected

void(* pkrsrv_server_t::on_client_connected) (pkrsrv_eventloop_task_t *task)

◆ on_client_disconnected

void(* pkrsrv_server_t::on_client_disconnected) (pkrsrv_eventloop_task_t *task)

◆ on_client_meowed

void(* pkrsrv_server_t::on_client_meowed) (pkrsrv_eventloop_task_t *task)

◆ on_client_login

void(* pkrsrv_server_t::on_client_login) (pkrsrv_eventloop_task_t *task)

◆ on_client_signup

void(* pkrsrv_server_t::on_client_signup) (pkrsrv_eventloop_task_t *task)

◆ on_client_get_account

void(* pkrsrv_server_t::on_client_get_account) (pkrsrv_eventloop_task_t *task)

◆ on_client_enter

void(* pkrsrv_server_t::on_client_enter) (pkrsrv_eventloop_task_t *task)

◆ on_client_leave

void(* pkrsrv_server_t::on_client_leave) (pkrsrv_eventloop_task_t *task)

◆ on_client_join

void(* pkrsrv_server_t::on_client_join) (pkrsrv_eventloop_task_t *task)

◆ on_client_unjoin

void(* pkrsrv_server_t::on_client_unjoin) (pkrsrv_eventloop_task_t *task)

◆ on_client_action

void(* pkrsrv_server_t::on_client_action) (pkrsrv_eventloop_task_t *task)

◆ on_client_get_tables

void(* pkrsrv_server_t::on_client_get_tables) (pkrsrv_eventloop_task_t *task)

◆ on_client_get_sessions

void(* pkrsrv_server_t::on_client_get_sessions) (pkrsrv_eventloop_task_t *task)

◆ on_client_update_account

void(* pkrsrv_server_t::on_client_update_account) (pkrsrv_eventloop_task_t *task)

◆ on_client_json

void(* pkrsrv_server_t::on_client_json) (pkrsrv_eventloop_task_t *task)

◆ mutex

pthread_mutex_t pkrsrv_server_t::mutex

◆ thread

pthread_t pkrsrv_server_t::thread

◆ is_running

bool pkrsrv_server_t::is_running

◆ pkrsrv_server_clients

struct pkrsrv_server_clients
Data Fields
pkrsrv_server_client_t * prev
pkrsrv_server_client_t * next
pkrsrv_server_client_t * terminal
int length

◆ pkrsrv_server_client

struct pkrsrv_server_client

Client object

+ Inheritance diagram for pkrsrv_server_client_t:

Data Fields

pkrsrv_ref_counted_t ref_counted
 
pkrsrv_server_client_t * next
 
pkrsrv_server_client_t * prev
 
pkrsrv_server_t * server
 
PGconn * pg_conn
 
SSL * ssl
 
bool is_alive
 
bool is_protocol_determined
 
bool is_websocket
 
pkrsrv_websocket_t websocket
 
pthread_mutex_t write_mutex
 
int socket
 
int server_socket
 
int address
 
void * owner
 
- Data Fields inherited from pkrsrv_ref_counted_t
int count
 
pkrsrv_ref_free_f_t free_f
 
pthread_mutex_t mutex
 

Additional Inherited Members

- Public Member Functions inherited from pkrsrv_ref_counted_t
#define PKRSRV_REF_COUNTED_INIT(obj, free_f)    pkrsrv_ref_counted_init(&(obj->ref_counted), (pkrsrv_ref_free_f_t) free_f);
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
#define PKRSRV_REF_COUNTED_USE(obj)
 Increments the reference count of a reference-counted object.
 
#define PKRSRV_REF_COUNTED_LEAVE(obj)
 Decrements the reference count of a reference-counted object.
 
- Protected Member Functions inherited from pkrsrv_ref_counted_t
void pkrsrv_ref_counted_init (pkrsrv_ref_counted_t *ref_counted, pkrsrv_ref_free_f_t free_f)
 Initializes a reference-counted object. Should be called in the constructor of the object after the dynamic allocation.
 
void pkrsrv_ref_counted_use (pkrsrv_ref_counted_t *ref_counted)
 Increments the reference count of a reference-counted object.
 
void pkrsrv_ref_counted_leave (void **obj_vp, pkrsrv_ref_counted_t *ref_counted)
 Decrements the reference count of a reference-counted object.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_server_client_t::ref_counted

◆ next

pkrsrv_server_client_t* pkrsrv_server_client_t::next

◆ prev

pkrsrv_server_client_t* pkrsrv_server_client_t::prev

◆ server

pkrsrv_server_t* pkrsrv_server_client_t::server

◆ pg_conn

PGconn* pkrsrv_server_client_t::pg_conn

◆ ssl

SSL* pkrsrv_server_client_t::ssl

◆ is_alive

bool pkrsrv_server_client_t::is_alive

◆ is_protocol_determined

bool pkrsrv_server_client_t::is_protocol_determined

◆ is_websocket

bool pkrsrv_server_client_t::is_websocket

◆ websocket

pkrsrv_websocket_t pkrsrv_server_client_t::websocket

◆ write_mutex

pthread_mutex_t pkrsrv_server_client_t::write_mutex

◆ socket

int pkrsrv_server_client_t::socket

◆ server_socket

int pkrsrv_server_client_t::server_socket

◆ address

int pkrsrv_server_client_t::address

◆ owner

void* pkrsrv_server_client_t::owner

◆ pkrsrv_server_new_params

struct pkrsrv_server_new_params
Data Fields
void * owner
int port
char * bind_address
pkrsrv_eventloop_t * eventloop
int max_clients
void(*)(pkrsrv_eventloop_task_t *task) on_client_connected
void(*)(pkrsrv_eventloop_task_t *task) on_client_disconnected
void(*)(pkrsrv_eventloop_task_t *task) on_client_meowed
void(*)(pkrsrv_eventloop_task_t *task) on_client_login
void(*)(pkrsrv_eventloop_task_t *task) on_client_signup
void(*)(pkrsrv_eventloop_task_t *task) on_client_get_account
void(*)(pkrsrv_eventloop_task_t *task) on_client_enter
void(*)(pkrsrv_eventloop_task_t *task) on_client_leave
void(*)(pkrsrv_eventloop_task_t *task) on_client_join
void(*)(pkrsrv_eventloop_task_t *task) on_client_unjoin
void(*)(pkrsrv_eventloop_task_t *task) on_client_action
void(*)(pkrsrv_eventloop_task_t *task) on_client_get_tables
void(*)(pkrsrv_eventloop_task_t *task) on_client_get_sessions
void(*)(pkrsrv_eventloop_task_t *task) on_client_update_account
void(*)(pkrsrv_eventloop_task_t *task) on_client_json

◆ pkrsrv_server_send_login_res_params_t

struct pkrsrv_server_send_login_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint8_t is_ok
uint8_t is_logined
pkrsrv_account_t * account

◆ pkrsrv_server_send_signup_res_params_t

struct pkrsrv_server_send_signup_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint8_t is_ok
uint8_t is_logined
uint16_t status
pkrsrv_account_t * account

◆ pkrsrv_server_send_account_params_t

struct pkrsrv_server_send_account_params_t
Data Fields
pkrsrv_server_client_t * client
pkrsrv_account_t * account

◆ pkrsrv_server_send_enter_res_params_t

struct pkrsrv_server_send_enter_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint8_t is_ok

◆ pkrsrv_server_send_leave_res_params_t

struct pkrsrv_server_send_leave_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint8_t is_ok

◆ pkrsrv_server_send_join_res_params_t

struct pkrsrv_server_send_join_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint8_t is_ok

◆ pkrsrv_server_send_unjoin_res_params_t

struct pkrsrv_server_send_unjoin_res_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint8_t is_ok

◆ pkrsrv_server_send_poker_info_params_t

struct pkrsrv_server_send_poker_info_params_t
Data Fields
pkrsrv_server_client_t * client
pkrsrv_poker_t * poker

◆ pkrsrv_server_send_poker_state_params_t

struct pkrsrv_server_send_poker_state_params_t
Data Fields
pkrsrv_server_client_t * client
pkrsrv_poker_t * poker
pkrsrv_poker_player_t * player

◆ pkrsrv_server_send_poker_action_reflection_params_t

struct pkrsrv_server_send_poker_action_reflection_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint64_t account_id
uint16_t action_kind
uint64_t amount

◆ pkrsrv_server_send_poker_end_params_t

struct pkrsrv_server_send_poker_end_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint64_t winner_account_id
uint64_t earned_amount
pkrsrv_poker_t * poker

◆ pkrsrv_server_send_poker_restarted_params_t

struct pkrsrv_server_send_poker_restarted_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id

◆ pkrsrv_server_send_unjoined_params_t

struct pkrsrv_server_send_unjoined_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t table_id
uint32_t reason

◆ pkrsrv_server_send_tables_params_t

struct pkrsrv_server_send_tables_params_t
Data Fields
pkrsrv_server_client_t * client
uint16_t offset
pkrsrv_table_list_t * list

◆ pkrsrv_server_send_sessions_params_t

struct pkrsrv_server_send_sessions_params_t
Data Fields
pkrsrv_server_client_t * client
uint16_t offset
int pokers_length
pkrsrv_poker_t ** pokers

◆ pkrsrv_server_send_update_account_res_params_t

struct pkrsrv_server_send_update_account_res_params_t
Data Fields
pkrsrv_server_client_t * client
bool is_ok
bool is_avatar_too_big

◆ pkrsrv_server_send_server_info_params_t

struct pkrsrv_server_send_server_info_params_t
Data Fields
pkrsrv_server_client_t * client
uint64_t build_number
pkrsrv_string_t * version
pkrsrv_string_t * revision
pkrsrv_string_t * compiler

◆ pkrsrv_server_send_json_params_t

struct pkrsrv_server_send_json_params_t
Data Fields
pkrsrv_server_client_t * client
pkrsrv_string_t * json

Typedef Documentation

◆ pkrsrv_server_packet_frame_header_t

typedef struct pkrsrv_server_packet_frame_header pkrsrv_server_packet_frame_header_t

◆ pkrsrv_server_packet_frame_login_t

typedef struct pkrsrv_server_packet_frame_login pkrsrv_server_packet_frame_login_t

◆ pkrsrv_server_packet_frame_login_res_t

typedef struct pkrsrv_server_packet_frame_login_res pkrsrv_server_packet_frame_login_res_t

◆ pkrsrv_server_packet_frame_login_res_account_t

typedef struct pkrsrv_server_packet_frame_login_res_account pkrsrv_server_packet_frame_login_res_account_t

◆ pkrsrv_server_packet_frame_signup_t

typedef struct pkrsrv_server_packet_frame_signup pkrsrv_server_packet_frame_signup_t

◆ pkrsrv_server_packet_frame_signup_res_t

typedef struct pkrsrv_server_packet_frame_signup_res pkrsrv_server_packet_frame_signup_res_t

◆ pkrsrv_server_packet_frame_signup_res_account_t

typedef struct pkrsrv_server_packet_frame_signup_res_account pkrsrv_server_packet_frame_signup_res_account_t

◆ pkrsrv_server_packet_frame_account_t

typedef struct pkrsrv_server_packet_frame_account pkrsrv_server_packet_frame_account_t

◆ pkrsrv_server_packet_frame_enter_t

typedef struct pkrsrv_server_packet_frame_enter pkrsrv_server_packet_frame_enter_t

◆ pkrsrv_server_packet_frame_enter_res_t

typedef struct pkrsrv_server_packet_frame_enter_res pkrsrv_server_packet_frame_enter_res_t

◆ pkrsrv_server_packet_frame_leave_t

typedef struct pkrsrv_server_packet_frame_leave pkrsrv_server_packet_frame_leave_t

◆ pkrsrv_server_packet_frame_leave_res_t

typedef struct pkrsrv_server_packet_frame_leave_res pkrsrv_server_packet_frame_leave_res_t

◆ pkrsrv_server_packet_frame_join_t

typedef struct pkrsrv_server_packet_frame_join pkrsrv_server_packet_frame_join_t

◆ pkrsrv_server_packet_frame_join_res_t

typedef struct pkrsrv_server_packet_frame_join_res pkrsrv_server_packet_frame_join_res_t

◆ pkrsrv_server_packet_frame_unjoin_t

typedef struct pkrsrv_server_packet_frame_unjoin pkrsrv_server_packet_frame_unjoin_t

◆ pkrsrv_server_packet_frame_unjoin_res_t

typedef struct pkrsrv_server_packet_frame_unjoin_res pkrsrv_server_packet_frame_unjoin_res_t

◆ pkrsrv_server_packet_frame_poker_info_t

typedef struct pkrsrv_server_packet_frame_poker_info pkrsrv_server_packet_frame_poker_info_t

◆ pkrsrv_server_packet_frame_poker_info_player_t

typedef struct pkrsrv_server_packet_frame_poker_info_player pkrsrv_server_packet_frame_poker_info_player_t

◆ pkrsrv_server_packet_frame_poker_state_t

typedef struct pkrsrv_server_packet_frame_poker_state pkrsrv_server_packet_frame_poker_state_t

◆ pkrsrv_server_packet_frame_poker_state_player_t

typedef struct pkrsrv_server_packet_frame_poker_state_player pkrsrv_server_packet_frame_poker_state_player_t

◆ pkrsrv_server_packet_frame_poker_action_t

typedef struct pkrsrv_server_packet_frame_poker_action pkrsrv_server_packet_frame_poker_action_t

◆ pkrsrv_server_packet_frame_poker_action_reflection_t

typedef struct pkrsrv_server_packet_frame_poker_action_reflection pkrsrv_server_packet_frame_poker_action_reflection_t

◆ pkrsrv_server_packet_frame_poker_end_t

typedef struct pkrsrv_server_packet_frame_poker_end pkrsrv_server_packet_frame_poker_end_t

◆ pkrsrv_server_packet_frame_poker_end_score_t

typedef struct pkrsrv_server_packet_frame_poker_end_score pkrsrv_server_packet_frame_poker_end_score_t

◆ pkrsrv_server_packet_frame_poker_restarted_t

typedef struct pkrsrv_server_packet_frame_poker_restarted pkrsrv_server_packet_frame_poker_restarted_t

◆ pkrsrv_server_packet_frame_unjoined_t

typedef struct pkrsrv_server_packet_frame_unjoined pkrsrv_server_packet_frame_unjoined_t

◆ pkrsrv_server_packet_frame_get_tables_t

typedef struct pkrsrv_server_packet_frame_get_tables pkrsrv_server_packet_frame_get_tables_t

◆ pkrsrv_server_packet_frame_tables_t

typedef struct pkrsrv_server_packet_frame_tables pkrsrv_server_packet_frame_tables_t

◆ pkrsrv_server_packet_frame_get_sessions_t

typedef struct pkrsrv_server_packet_frame_get_sessions pkrsrv_server_packet_frame_get_sessions_t

◆ pkrsrv_server_packet_frame_sessions_t

typedef struct pkrsrv_server_packet_frame_sessions pkrsrv_server_packet_frame_sessions_t

◆ pkrsrv_server_packet_frame_table_t

typedef struct pkrsrv_server_packet_frame_table pkrsrv_server_packet_frame_table_t

◆ pkrsrv_server_packet_frame_update_account_t

typedef struct pkrsrv_server_packet_frame_update_account pkrsrv_server_packet_frame_update_account_t

◆ pkrsrv_server_packet_frame_update_account_res_t

typedef struct pkrsrv_server_packet_frame_update_account_res pkrsrv_server_packet_frame_update_account_res_t

◆ pkrsrv_server_packet_frame_server_info_t

typedef struct pkrsrv_server_packet_frame_server_info pkrsrv_server_packet_frame_server_info_t

◆ pkrsrv_server_opcode_t

typedef uint32_t pkrsrv_server_opcode_t

◆ opcode_handler_t

typedef void(* opcode_handler_t) (pkrsrv_server_client_t *client, pkrsrv_server_packet_frame_header_t req_header)

Enumeration Type Documentation

◆ PKRSRV_SERVER_OPCODE

Server opcodes

Enumerator
PKRSRV_SERVER_OPCODE_NOP 
PKRSRV_SERVER_OPCODE_MEOW 
PKRSRV_SERVER_OPCODE_PING 
PKRSRV_SERVER_OPCODE_PONG 
PKRSRV_SERVER_OPCODE_LOGIN 
PKRSRV_SERVER_OPCODE_LOGIN_RES 
PKRSRV_SERVER_OPCODE_SIGNUP 
PKRSRV_SERVER_OPCODE_SIGNUP_RES 
PKRSRV_SERVER_OPCODE_GET_ACCOUNT 
PKRSRV_SERVER_OPCODE_ACCOUNT 
PKRSRV_SERVER_OPCODE_ENTER 
PKRSRV_SERVER_OPCODE_ENTER_RES 
PKRSRV_SERVER_OPCODE_LEAVE 
PKRSRV_SERVER_OPCODE_LEAVE_RES 
PKRSRV_SERVER_OPCODE_JOIN 
PKRSRV_SERVER_OPCODE_JOIN_RES 
PKRSRV_SERVER_OPCODE_UNJOIN 
PKRSRV_SERVER_OPCODE_UNJOIN_RES 
PKRSRV_SERVER_OPCODE_POKER_INFO 
PKRSRV_SERVER_OPCODE_POKER_STATE 
PKRSRV_SERVER_OPCODE_POKER_ACTION 
PKRSRV_SERVER_OPCODE_POKER_ACTION_REFLECTION 
PKRSRV_SERVER_OPCODE_POKER_END 
PKRSRV_SERVER_OPCODE_POKER_RESTARTED 
PKRSRV_SERVER_OPCODE_JSON 
PKRSRV_SERVER_OPCODE_UNJOINED 
PKRSRV_SERVER_OPCODE_GET_TABLES 
PKRSRV_SERVER_OPCODE_TABLES 
PKRSRV_SERVER_OPCODE_GET_SESSIONS 
PKRSRV_SERVER_OPCODE_SESSIONS 
PKRSRV_SERVER_OPCODE_UPDATE_ACCOUNT 
PKRSRV_SERVER_OPCODE_UPDATE_ACCOUNT_RES 
PKRSRV_SERVER_OPCODE_SERVER_INFO 
PKRSRV_SERVER_OPCODE_OVER_CAPACITY 
PKRSRV_SERVER_OPCODE_END 

◆ pkrsrv_server_packet_signup_res_status_t

Enumerator
PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_OK 
PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_ERROR 
PKRSRV_SERVER_PACKET_SIGNUP_RES_STATUS_ALREADY_EXISTS 

Function Documentation

◆ __attribute__()

struct __attribute__ ( (__packed__) )
  • direction: CLIENT_TO_SERVER
  • direction: SERVER_TO_CLIENT
  • direction: SERVER_TO_CLIENT
  • Broadcasted to all players in the session by server on poker actions

◆ pkrsrv_server_ssl_read()

int pkrsrv_server_ssl_read ( SSL * ssl,
void * buffer,
ssize_t length )

◆ pkrsrv_server_ssl_write()

int pkrsrv_server_ssl_write ( SSL * ssl,
void * buffer,
ssize_t length )

◆ pkrsrv_server_net_read()

int pkrsrv_server_net_read ( pkrsrv_server_client_t * client,
void * buffer,
ssize_t length )

◆ pkrsrv_server_net_write()

int pkrsrv_server_net_write ( pkrsrv_server_client_t * client,
void * buffer,
ssize_t length )

◆ pkrsrv_server_clients_new()

pkrsrv_server_clients_t * pkrsrv_server_clients_new ( )

◆ pkrsrv_server_add_client()

void pkrsrv_server_add_client ( pkrsrv_server_t * server,
pkrsrv_server_client_t * client )

◆ pkrsrv_server_add_client__ts()

void pkrsrv_server_add_client__ts ( pkrsrv_server_t * server,
pkrsrv_server_client_t * client )

◆ pkrsrv_server_remove_client()

void pkrsrv_server_remove_client ( pkrsrv_server_t * server,
pkrsrv_server_client_t * client )

◆ pkrsrv_server_remove_client__ts()

void pkrsrv_server_remove_client__ts ( pkrsrv_server_t * server,
pkrsrv_server_client_t * client )

◆ pkrsrv_server_client_new()

pkrsrv_server_client_t * pkrsrv_server_client_new ( pkrsrv_server_t * server)

◆ pkrsrv_server_client_free()

void pkrsrv_server_client_free ( pkrsrv_server_client_t * client)

◆ pkrsrv_server_send_binary()

bool pkrsrv_server_send_binary ( pkrsrv_server_client_t * client,
uint8_t * data,
size_t size )

◆ pkrsrv_server_send_over_capacity()

bool pkrsrv_server_send_over_capacity ( pkrsrv_server_client_t * client)

◆ pkrsrv_server_send_pong()

bool pkrsrv_server_send_pong ( pkrsrv_server_client_t * client)

◆ pkrsrv_server_send_login_res()

bool pkrsrv_server_send_login_res ( pkrsrv_server_send_login_res_params_t params)

◆ pkrsrv_server_send_signup_res()

bool pkrsrv_server_send_signup_res ( pkrsrv_server_send_signup_res_params_t params)

◆ pkrsrv_server_send_account()

bool pkrsrv_server_send_account ( pkrsrv_server_send_account_params_t params)

◆ pkrsrv_server_send_enter_res()

bool pkrsrv_server_send_enter_res ( pkrsrv_server_send_enter_res_params_t params)

◆ pkrsrv_server_send_leave_res()

bool pkrsrv_server_send_leave_res ( pkrsrv_server_send_leave_res_params_t params)

◆ pkrsrv_server_send_join_res()

bool pkrsrv_server_send_join_res ( pkrsrv_server_send_join_res_params_t params)

◆ pkrsrv_server_send_unjoin_res()

bool pkrsrv_server_send_unjoin_res ( pkrsrv_server_send_unjoin_res_params_t params)

◆ pkrsrv_server_send_poker_info()

bool pkrsrv_server_send_poker_info ( pkrsrv_server_send_poker_info_params_t params)

◆ pkrsrv_server_send_poker_info_player()

bool pkrsrv_server_send_poker_info_player ( pkrsrv_server_client_t * p_client,
pkrsrv_poker_player_t * p_player )

◆ pkrsrv_server_send_poker_state()

bool pkrsrv_server_send_poker_state ( pkrsrv_server_send_poker_state_params_t params)

◆ pkrsrv_server_send_poker_state_player()

bool pkrsrv_server_send_poker_state_player ( pkrsrv_server_client_t * p_client,
pkrsrv_poker_player_t * p_player )

◆ pkrsrv_server_send_poker_action_reflection()

bool pkrsrv_server_send_poker_action_reflection ( pkrsrv_server_send_poker_action_reflection_params_t params)

◆ pkrsrv_server_send_poker_end()

bool pkrsrv_server_send_poker_end ( pkrsrv_server_send_poker_end_params_t params)

◆ pkrsrv_server_send_poker_restarted()

bool pkrsrv_server_send_poker_restarted ( pkrsrv_server_send_poker_restarted_params_t params)

◆ pkrsrv_server_send_unjoined()

bool pkrsrv_server_send_unjoined ( pkrsrv_server_send_unjoined_params_t params)

◆ pkrsrv_server_send_tables()

bool pkrsrv_server_send_tables ( pkrsrv_server_send_tables_params_t params)

◆ pkrsrv_server_send_sessions()

bool pkrsrv_server_send_sessions ( pkrsrv_server_send_sessions_params_t params)

◆ pkrsrv_server_send_update_account_res()

bool pkrsrv_server_send_update_account_res ( pkrsrv_server_send_update_account_res_params_t params)

◆ pkrsrv_server_send_server_info()

bool pkrsrv_server_send_server_info ( pkrsrv_server_send_server_info_params_t params)

◆ pkrsrv_server_send_json()

bool pkrsrv_server_send_json ( pkrsrv_server_send_json_params_t params)

◆ pkrsrv_server_new()

pkrsrv_server_t * pkrsrv_server_new ( pkrsrv_server_new_params_t params)

◆ pkrsrv_server_start()

void pkrsrv_server_start ( pkrsrv_server_t * server)

◆ pkrsrv_server_listen()

void pkrsrv_server_listen ( pkrsrv_server_t * server)

◆ pkrsrv_server_free()

void pkrsrv_server_free ( pkrsrv_server_t * server)