230void pkrsrv_lobby_session_free(pkrsrv_lobby_session_t* p_session);
387static void on_client_connected(pkrsrv_eventloop_task_t* task);
388static void on_client_disconnected(pkrsrv_eventloop_task_t* task);
389static void on_client_meowed(pkrsrv_eventloop_task_t* task);
390static void on_client_login(pkrsrv_eventloop_task_t* task);
391static void on_client_signup(pkrsrv_eventloop_task_t* task);
392static void on_client_get_account(pkrsrv_eventloop_task_t* task);
393static void on_client_enter(pkrsrv_eventloop_task_t* task);
394static void on_client_leave(pkrsrv_eventloop_task_t* task);
395static void on_client_join(pkrsrv_eventloop_task_t* task);
396static void on_client_unjoin(pkrsrv_eventloop_task_t* task);
397static void on_client_action(pkrsrv_eventloop_task_t* task);
398static void on_client_get_tables(pkrsrv_eventloop_task_t* task);
399static void on_client_get_sessions(pkrsrv_eventloop_task_t* task);
400static void on_client_update_account(pkrsrv_eventloop_task_t* task);
401static void on_client_json(pkrsrv_eventloop_task_t* task);
403static void on_poker_action(pkrsrv_eventloop_task_t* task);
pkrsrv_lobby_session_t * session
Definition lobby.h:261
pkrsrv_account_t * account
Definition lobby.h:133
pkrsrv_lobby_client_sessions_t * sessions
Definition lobby.h:132
pkrsrv_lobby_session_clients_t * clients
Definition lobby.h:84
int process_latency
Definition lobby.h:77
PGconn * pg_conn
Definition lobby.h:74
pkrsrv_lobby_client_t * lobby_client
Definition lobby.h:141
pkrsrv_uniqid_uuid_t id
Definition lobby.h:76
int port
Definition lobby.h:153
pthread_mutex_t mutex
Definition lobby.h:53
pkrsrv_account_t * account
Definition lobby.h:140
int max_clients
Definition lobby.h:156
pkrsrv_lobby_t * lobby
Definition lobby.h:190
pkrsrv_lobby_sessions_t * sessions
Definition lobby.h:55
pkrsrv_lobby_session_t * session
Definition lobby.h:247
int joined_clients_count
Definition lobby.h:85
pkrsrv_lobby_session_t * session
Definition lobby.h:112
pkrsrv_lobby_t * lobby
Definition lobby.h:75
pkrsrv_server_t * server
Definition lobby.h:52
bool is_joined
Definition lobby.h:113
pkrsrv_poker_t * poker
Definition lobby.h:78
pkrsrv_lobby_t * lobby
Definition lobby.h:130
pkrsrv_lobby_client_t * client
Definition lobby.h:101
pkrsrv_eventloop_task_t * proceed_task
Definition lobby.h:81
pkrsrv_eventloop_t * eventloop
Definition lobby.h:56
bool is_running
Definition lobby.h:80
int process_latency
Definition lobby.h:155
pkrsrv_eventloop_task_t * poker_start_task
Definition lobby.h:82
char * bind_address
Definition lobby.h:154
int process_latency
Definition lobby.h:54
pkrsrv_lobby_session_t * session
Definition lobby.h:275
pthread_mutex_t mutex
Definition lobby.h:79
pkrsrv_eventloop_task_t * poker_restart_task
Definition lobby.h:83
bool is_joined
Definition lobby.h:102
pkrsrv_table_t * table
Definition lobby.h:191
pkrsrv_server_client_t * client
Definition lobby.h:131
void pkrsrv_lobby_session_proceed__async(pkrsrv_eventloop_task_t *task)
Proceeds the session's game one step to future.
void pkrsrv_lobby_broadcast_sessions(pkrsrv_lobby_t *lobby)
Broadcasts the sessions of the lobby to all clients.
void pkrsrv_lobby_session_start(pkrsrv_lobby_session_t *session)
Starts the session.
void pkrsrv_lobby_client_set_account(pkrsrv_lobby_client_t *lobby_client, pkrsrv_account_t *account)
Sets the account of a lobby client.
void pkrsrv_lobby_free(pkrsrv_lobby_t *lobby)
Frees a lobby object.
void on_account_updated__async(pkrsrv_eventloop_task_t *task)
Used for pkrsrv_account_t::on_updated
void pkrsrv_lobby_run(pkrsrv_lobby_t *lobby)
Runs the lobby.
bool pkrsrv_lobby_client_join_session(pkrsrv_lobby_client_t *client, pkrsrv_lobby_session_t *session, uint64_t enterance_amount, int position)
Makes a lobby join a session.
void pkrsrv_lobby_client_sessions_remove(pkrsrv_lobby_client_sessions_t *client_sessions, pkrsrv_lobby_client_session_t *client_session)
Removes a lobby client session from the lobby client.
pkrsrv_lobby_client_t * pkrsrv_lobby_client_new(pkrsrv_lobby_t *lobby, pkrsrv_server_client_t *client)
Creates a new lobby client object.
pkrsrv_lobby_session_client_t * pkrsrv_lobby_session_client_getby_account_id(pkrsrv_lobby_session_t *session, uint64_t account_id)
Gives the client of a session by its account ID.
void pkrsrv_lobby_sessions_remove(pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session)
Removes a session from the lobby.
void pkrsrv_lobby_session_free(pkrsrv_lobby_session_t *session)
Frees a session object.
void pkrsrv_lobby_session_client_free(pkrsrv_lobby_session_client_t *session_client)
Frees a session client object.
void pkrsrv_lobby_session_poker_restart__async(pkrsrv_eventloop_task_t *task)
Restarts the poker game of the session.
void pkrsrv_lobby_session_poker_start__async(pkrsrv_eventloop_task_t *task)
Starts the poker game of the session.
bool pkrsrv_lobby_client_enter_session(pkrsrv_lobby_client_t *client, pkrsrv_lobby_session_t *session)
Makes a lobby enter a session.
void pkrsrv_lobby_client_free(pkrsrv_lobby_client_t *lobby_client)
Frees a lobby client object.
bool pkrsrv_lobby_client_leave_session(pkrsrv_lobby_client_t *client, pkrsrv_lobby_client_session_t *client_session)
Makes a lobby leave a session.
pkrsrv_lobby_session_client_t * pkrsrv_lobby_session_client_getby_socket(pkrsrv_lobby_session_t *session, int socket)
Gives the client of a session by its socket.
pkrsrv_lobby_session_t * pkrsrv_lobby_session_new(pkrsrv_lobby_session_new_params_t params)
Creates a new session object.
bool reorder_updated_session(pkrsrv_lobby_session_t *updated, int old_length)
Efficient session reorderer
bool pkrsrv_lobby_client_unjoin_session(pkrsrv_lobby_client_t *client, pkrsrv_lobby_session_t *session)
Makes a lobby unjoin a session.
pkrsrv_lobby_client_session_t * pkrsrv_lobby_client_session_getby_table_id(pkrsrv_lobby_client_t *client, uint64_t id)
Gİies the session of a lobby client by its table ID.
pkrsrv_lobby_client_session_t * pkrsrv_lobby_client_session_getby_session_id(pkrsrv_lobby_client_t *lobby_client, uint64_t session_id)
Gives the client of a session by its account.
pkrsrv_lobby_client_session_t * pkrsrv_lobby_client_get_session_by_id(pkrsrv_lobby_client_t *client, uint64_t id)
Gives the session of a lobby client by its ID.
void pkrsrv_lobby_client_session_free(pkrsrv_lobby_client_session_t *joined_session)
Frees a lobby client session object.
pkrsrv_lobby_t * pkrsrv_lobby_new(pkrsrv_lobby_new_params_t params)
Creates a new lobby object.
void pkrsrv_lobby_session_clients_add(pkrsrv_lobby_session_clients_t *session_clients, pkrsrv_lobby_session_client_t *session_client)
Adds a session client to the session.
void pkrsrv_lobby_sessions_add(pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session)
Adds a session to the lobby.
pkrsrv_lobby_session_t * pkrsrv_lobby_session_getby_table_id(pkrsrv_lobby_t *lobby, uint64_t id)
Gives the session by its table ID.
pkrsrv_lobby_session_client_t * pkrsrv_lobby_session_client_new(pkrsrv_lobby_client_t *lobby_client)
Creates a new session client object.
void pkrsrv_lobby_session_clients_remove(pkrsrv_lobby_session_clients_t *session_clients, pkrsrv_lobby_session_client_t *session_client)
Removes a session client from the session.
pkrsrv_lobby_session_t * pkrsrv_lobby_session_getby_id(pkrsrv_lobby_t *lobby, uint64_t id)
Gives the session by its ID.
void pkrsrv_lobby_session_stop(pkrsrv_lobby_session_t *session)
Stops the session.
void pkrsrv_lobby_client_sessions_add(pkrsrv_lobby_client_sessions_t *client_sessions, pkrsrv_lobby_client_session_t *client_session)
Adds a lobby client session to the lobby client.
pkrsrv_lobby_client_session_t * pkrsrv_lobby_client_session_new(pkrsrv_lobby_session_t *session)
Creates a new lobby client session object.
Parameters of on_account_updated__async
Definition lobby.h:139
Lobby object.
Definition lobby.h:50
Lobby client object.
Definition lobby.h:128
Lobby client session object.
Definition lobby.h:110
Lobby client sessions list structure.
Definition lobby.h:120
Parameters of pkrsrv_lobby_new
Definition lobby.h:152
Session object.
Definition lobby.h:71
Session client object.
Definition lobby.h:99
Session clients list structure.
Definition lobby.h:91
Parameters of pkrsrv_lobby_session_new
Definition lobby.h:189
Parameters of pkrsrv_lobby_session_poker_restart__async
Definition lobby.h:274
Parameters of pkrsrv_lobby_session_poker_start__async
Definition lobby.h:260
Parameters of pkrsrv_lobby_session_proceed__async
Definition lobby.h:246
Lobby sessions list structure.
Definition lobby.h:62
#define PKRSRV_REF_COUNTEDIFY()
Makes a structure reference-counted.
Definition ref.h:70
#define LISTIFY(type)
Definition sugar.h:38
#define ITEMIFY(type)
Definition sugar.h:44