![]() |
PokerUnicorn
|
Lobby and session management and interactions. More...
Data Structures | |
| struct | pkrsrv_lobby_t |
| Lobby object. More... | |
| struct | pkrsrv_lobby_sessions_t |
| Lobby sessions list structure. More... | |
| struct | pkrsrv_lobby_session_t |
| Session object. More... | |
| struct | pkrsrv_lobby_session_clients_t |
| Session clients list structure. More... | |
| struct | pkrsrv_lobby_session_client_t |
| Session client object. More... | |
| struct | pkrsrv_lobby_client_session_t |
| Lobby client session object. More... | |
| struct | pkrsrv_lobby_client_sessions_t |
| Lobby client sessions list structure. More... | |
| struct | pkrsrv_lobby_client_t |
| Lobby client object. More... | |
| struct | on_account_updated_params_t |
Parameters of on_account_updated__async More... | |
| struct | pkrsrv_lobby_new_params_t |
Parameters of pkrsrv_lobby_new More... | |
| struct | pkrsrv_lobby_session_new_params_t |
Parameters of pkrsrv_lobby_session_new More... | |
| struct | pkrsrv_lobby_session_proceed__async_params_t |
Parameters of pkrsrv_lobby_session_proceed__async More... | |
| struct | pkrsrv_lobby_session_poker_start__async_params_t |
Parameters of pkrsrv_lobby_session_poker_start__async More... | |
| struct | pkrsrv_lobby_session_poker_restart__async_params_t |
Parameters of pkrsrv_lobby_session_poker_restart__async More... | |
Macros | |
| #define | PKRSRV_LOBBY_DISCONNECTION_TOLERANCE 20000 |
| Lobby disconnection tolerance in milliseconds. | |
Functions | |
| pkrsrv_lobby_client_sessions_t * | pkrsrv_lobby_client_sessions_new () |
| void | pkrsrv_lobby_client_sessions_free (pkrsrv_lobby_client_sessions_t *sessions) |
| void | on_account_updated__async (pkrsrv_eventloop_task_t *task) |
Used for pkrsrv_account_t::on_updated | |
| pkrsrv_lobby_t * | pkrsrv_lobby_new (pkrsrv_lobby_new_params_t params) |
| Creates a new lobby object. | |
| void | pkrsrv_lobby_free (pkrsrv_lobby_t *lobby) |
| Frees a lobby object. | |
| void | pkrsrv_lobby_run (pkrsrv_lobby_t *lobby) |
| Runs the lobby. | |
| pkrsrv_lobby_client_t * | pkrsrv_lobby_client_new (pkrsrv_lobby_t *lobby, pkrsrv_server_client_t *client) |
| Creates a new lobby client object. | |
| 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_client_free (pkrsrv_lobby_client_t *lobby_client) |
| Frees a lobby client object. | |
| bool | reorder_updated_session (pkrsrv_lobby_session_t *updated, int old_length) |
| Efficient session reorderer | |
| void | pkrsrv_lobby_broadcast_sessions (pkrsrv_lobby_t *lobby) |
| Broadcasts the sessions of the lobby to all clients. | |
| pkrsrv_lobby_sessions_t * | pkrsrv_lobby_sessions_t::pkrsrv_lobby_sessions_new () |
| Creates a new lobby sessions list. | |
| void | pkrsrv_lobby_sessions_t::pkrsrv_lobby_sessions_free (pkrsrv_lobby_sessions_t *sessions) |
| Frees the lobby sessions list (stops & releases all sessions) | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_t::pkrsrv_lobby_session_new (pkrsrv_lobby_session_new_params_t params) |
| Creates a new session object. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_free (pkrsrv_lobby_session_t *session) |
| Frees a session object. | |
| void | pkrsrv_lobby_sessions_t::pkrsrv_lobby_sessions_add (pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session) |
| Adds a session to the lobby. | |
| void | pkrsrv_lobby_sessions_t::pkrsrv_lobby_sessions_remove (pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session) |
| Removes a session from the lobby. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_start (pkrsrv_lobby_session_t *session) |
| Starts the session. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_stop (pkrsrv_lobby_session_t *session) |
| Stops the session. | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_t::pkrsrv_lobby_session_getby_id (pkrsrv_lobby_t *lobby, uint64_t id) |
| Gives the session by its ID. | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_t::pkrsrv_lobby_session_getby_table_id (pkrsrv_lobby_t *lobby, uint64_t id) |
| Gives the session by its table ID. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_proceed__async (pkrsrv_eventloop_task_t *task) |
| Proceeds the session's game one step to future. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_poker_start__async (pkrsrv_eventloop_task_t *task) |
| Starts the poker game of the session. | |
| void | pkrsrv_lobby_session_t::pkrsrv_lobby_session_poker_restart__async (pkrsrv_eventloop_task_t *task) |
| Restarts the poker game of the session. | |
| pkrsrv_lobby_session_client_t * | 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_client_t::pkrsrv_lobby_session_client_free (pkrsrv_lobby_session_client_t *session_client) |
| Frees a session client object. | |
| void | pkrsrv_lobby_session_clients_t::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_session_clients_t::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_client_session_t * | pkrsrv_lobby_client_session_t::pkrsrv_lobby_client_session_new (pkrsrv_lobby_session_t *session) |
| Creates a new lobby client session object. | |
| void | pkrsrv_lobby_client_session_t::pkrsrv_lobby_client_session_free (pkrsrv_lobby_client_session_t *joined_session) |
| Frees a lobby client session object. | |
| void | pkrsrv_lobby_client_sessions_t::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. | |
| void | pkrsrv_lobby_client_sessions_t::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. | |
| bool | pkrsrv_lobby_client_t::pkrsrv_lobby_client_enter_session (pkrsrv_lobby_client_t *client, pkrsrv_lobby_session_t *session) |
| Makes a lobby enter a session. | |
| bool | pkrsrv_lobby_client_t::pkrsrv_lobby_client_leave_session (pkrsrv_lobby_client_t *client, pkrsrv_lobby_client_session_t *client_session) |
| Makes a lobby leave a session. | |
| bool | pkrsrv_lobby_client_t::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. | |
| bool | pkrsrv_lobby_client_t::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_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. | |
| pkrsrv_lobby_client_session_t * | pkrsrv_lobby_client_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_session_client_t * | pkrsrv_lobby_session_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_client_t * | pkrsrv_lobby_session_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. | |
| pkrsrv_lobby_client_session_t * | pkrsrv_lobby_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. | |
Lobby and session management and interactions.
| struct pkrsrv_lobby |
Lobby object.
Inheritance diagram for pkrsrv_lobby_t:Data Fields | |
| pkrsrv_ref_counted_t | ref_counted |
| pkrsrv_server_t * | server |
| pthread_mutex_t | mutex |
| int | process_latency |
| pkrsrv_lobby_sessions_t * | sessions |
| pkrsrv_eventloop_t * | eventloop |
| pkrsrv_trie__ascii_t * | authorized_clients |
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. | |
Related Symbols inherited from pkrsrv_ref_counted_t | |
| #define | PKRSRV_REF_COUNTED_INIT(obj, 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. | |
| pkrsrv_ref_counted_t pkrsrv_lobby_t::ref_counted |
| pkrsrv_server_t* pkrsrv_lobby_t::server |
| pthread_mutex_t pkrsrv_lobby_t::mutex |
| int pkrsrv_lobby_t::process_latency |
| pkrsrv_lobby_sessions_t* pkrsrv_lobby_t::sessions |
| pkrsrv_eventloop_t* pkrsrv_lobby_t::eventloop |
| pkrsrv_trie__ascii_t* pkrsrv_lobby_t::authorized_clients |
| struct pkrsrv_lobby_sessions |
Lobby sessions list structure.
Public Member Functions | |
| pkrsrv_lobby_sessions_t * | pkrsrv_lobby_sessions_new () |
| Creates a new lobby sessions list. | |
| void | pkrsrv_lobby_sessions_free (pkrsrv_lobby_sessions_t *sessions) |
| Frees the lobby sessions list (stops & releases all sessions) | |
| void | pkrsrv_lobby_sessions_add (pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session) |
| Adds a session to the lobby. | |
| void | pkrsrv_lobby_sessions_remove (pkrsrv_lobby_sessions_t *sessions, pkrsrv_lobby_session_t *session) |
| Removes a session from the lobby. | |
Data Fields | |
| pkrsrv_ref_counted_t | ref_counted |
| pkrsrv_lobby_session_t * | next |
| pkrsrv_lobby_session_t * | prev |
| pkrsrv_lobby_session_t * | terminal |
| int | length |
| pkrsrv_ref_counted_t pkrsrv_lobby_sessions_t::ref_counted |
| pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::next |
| pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::prev |
| pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::terminal |
| int pkrsrv_lobby_sessions_t::length |
| struct pkrsrv_lobby_session |
Session object.
Inheritance diagram for pkrsrv_lobby_session_t:Public Member Functions | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_new (pkrsrv_lobby_session_new_params_t params) |
| Creates a new session object. | |
| void | pkrsrv_lobby_session_free (pkrsrv_lobby_session_t *session) |
| Frees a session object. | |
| void | pkrsrv_lobby_session_start (pkrsrv_lobby_session_t *session) |
| Starts the session. | |
| void | pkrsrv_lobby_session_stop (pkrsrv_lobby_session_t *session) |
| Stops the session. | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_getby_id (pkrsrv_lobby_t *lobby, uint64_t id) |
| Gives the session by its ID. | |
| pkrsrv_lobby_session_t * | pkrsrv_lobby_session_getby_table_id (pkrsrv_lobby_t *lobby, uint64_t id) |
| Gives the session by its table ID. | |
| void | pkrsrv_lobby_session_proceed__async (pkrsrv_eventloop_task_t *task) |
| Proceeds the session's game one step to future. | |
| void | pkrsrv_lobby_session_poker_start__async (pkrsrv_eventloop_task_t *task) |
| Starts the poker game of the session. | |
| void | pkrsrv_lobby_session_poker_restart__async (pkrsrv_eventloop_task_t *task) |
| Restarts the poker game of the 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_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. | |
| 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. | |
Data Fields | |
| pkrsrv_ref_counted_t | ref_counted |
| pkrsrv_lobby_session_t * | next |
| pkrsrv_lobby_session_t * | prev |
| PGconn * | pg_conn |
| pkrsrv_lobby_t * | lobby |
| pkrsrv_uniqid_uuid_t | id |
| int | process_latency |
| pkrsrv_poker_t * | poker |
| pthread_mutex_t | mutex |
| bool | is_running |
| pkrsrv_eventloop_task_t * | proceed_task |
| pkrsrv_eventloop_task_t * | poker_start_task |
| pkrsrv_eventloop_task_t * | poker_restart_task |
| pkrsrv_lobby_session_clients_t * | clients |
| int | joined_clients_count |
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. | |
Related Symbols inherited from pkrsrv_ref_counted_t | |
| #define | PKRSRV_REF_COUNTED_INIT(obj, 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. | |
| pkrsrv_ref_counted_t pkrsrv_lobby_session_t::ref_counted |
| pkrsrv_lobby_session_t* pkrsrv_lobby_session_t::next |
| pkrsrv_lobby_session_t* pkrsrv_lobby_session_t::prev |
| PGconn* pkrsrv_lobby_session_t::pg_conn |
| pkrsrv_lobby_t* pkrsrv_lobby_session_t::lobby |
Referenced by pkrsrv_lobby_session_getby_id(), and pkrsrv_lobby_session_getby_table_id().
| pkrsrv_uniqid_uuid_t pkrsrv_lobby_session_t::id |
| int pkrsrv_lobby_session_t::process_latency |
| pkrsrv_poker_t* pkrsrv_lobby_session_t::poker |
| pthread_mutex_t pkrsrv_lobby_session_t::mutex |
| bool pkrsrv_lobby_session_t::is_running |
| pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::proceed_task |
| pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::poker_start_task |
| pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::poker_restart_task |
| pkrsrv_lobby_session_clients_t* pkrsrv_lobby_session_t::clients |
| int pkrsrv_lobby_session_t::joined_clients_count |
| struct pkrsrv_lobby_session_clients |
Session clients list structure.
Public Member Functions | |
| 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_session_clients_remove (pkrsrv_lobby_session_clients_t *session_clients, pkrsrv_lobby_session_client_t *session_client) |
| Removes a session client from the session. | |
Data Fields | |
| pkrsrv_lobby_session_client_t * | next |
| pkrsrv_lobby_session_client_t * | prev |
| pkrsrv_lobby_session_client_t * | terminal |
| int | length |
| pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::next |
| pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::prev |
| pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::terminal |
| int pkrsrv_lobby_session_clients_t::length |
| struct pkrsrv_lobby_session_client |
Session client object.
Inheritance diagram for pkrsrv_lobby_session_client_t:Public Member Functions | |
| 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_client_free (pkrsrv_lobby_session_client_t *session_client) |
| Frees a session client object. | |
Data Fields | |
| pkrsrv_lobby_session_client_t * | next |
| pkrsrv_lobby_session_client_t * | prev |
| pkrsrv_lobby_client_t * | client |
| bool | is_joined |
| pkrsrv_ref_counted_t | ref_counted |
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. | |
Related Symbols inherited from pkrsrv_ref_counted_t | |
| #define | PKRSRV_REF_COUNTED_INIT(obj, 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. | |
| pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_client_t::next |
| pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_client_t::prev |
| pkrsrv_lobby_client_t* pkrsrv_lobby_session_client_t::client |
| bool pkrsrv_lobby_session_client_t::is_joined |
| pkrsrv_ref_counted_t pkrsrv_lobby_session_client_t::ref_counted |
| struct pkrsrv_lobby_client_session |
Lobby client session object.
Inheritance diagram for pkrsrv_lobby_client_session_t:Public Member Functions | |
| pkrsrv_lobby_client_session_t * | pkrsrv_lobby_client_session_new (pkrsrv_lobby_session_t *session) |
| Creates a new lobby client session object. | |
| void | pkrsrv_lobby_client_session_free (pkrsrv_lobby_client_session_t *joined_session) |
| Frees a lobby client session object. | |
Data Fields | |
| pkrsrv_lobby_client_session_t * | next |
| pkrsrv_lobby_client_session_t * | prev |
| pkrsrv_lobby_session_t * | session |
| bool | is_joined |
| pkrsrv_ref_counted_t | ref_counted |
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. | |
Related Symbols inherited from pkrsrv_ref_counted_t | |
| #define | PKRSRV_REF_COUNTED_INIT(obj, 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. | |
| pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_session_t::next |
| pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_session_t::prev |
| pkrsrv_lobby_session_t* pkrsrv_lobby_client_session_t::session |
Referenced by pkrsrv_lobby_client_session_new().
| bool pkrsrv_lobby_client_session_t::is_joined |
| pkrsrv_ref_counted_t pkrsrv_lobby_client_session_t::ref_counted |
| struct pkrsrv_lobby_client_sessions |
Lobby client sessions list structure.
Public Member Functions | |
| 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. | |
| 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. | |
Data Fields | |
| pkrsrv_lobby_client_session_t * | next |
| pkrsrv_lobby_client_session_t * | prev |
| pkrsrv_lobby_client_session_t * | terminal |
| int | length |
| pkrsrv_ref_counted_t | ref_counted |
| pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::next |
| pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::prev |
| pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::terminal |
| int pkrsrv_lobby_client_sessions_t::length |
| pkrsrv_ref_counted_t pkrsrv_lobby_client_sessions_t::ref_counted |
| struct pkrsrv_lobby_client |
Lobby client object.
Inheritance diagram for pkrsrv_lobby_client_t:Public Member Functions | |
| bool | pkrsrv_lobby_client_enter_session (pkrsrv_lobby_client_t *client, pkrsrv_lobby_session_t *session) |
| Makes a lobby enter a session. | |
| bool | pkrsrv_lobby_client_leave_session (pkrsrv_lobby_client_t *client, pkrsrv_lobby_client_session_t *client_session) |
| Makes a lobby leave a session. | |
| 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. | |
| 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_get_session_by_id (pkrsrv_lobby_client_t *client, uint64_t id) |
| Gives the session of a lobby client by its ID. | |
| 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. | |
Data Fields | |
| pkrsrv_ref_counted_t | ref_counted |
| pkrsrv_lobby_t * | lobby |
| pkrsrv_server_client_t * | client |
| pkrsrv_lobby_client_sessions_t * | sessions |
| pkrsrv_account_t * | account |
| pkrsrv_auth_session_t * | auth_session |
| bool | is_tolerant_disconnected |
| bool | is_disconnected |
| bool | is_connected |
| bool | is_revived |
| pkrsrv_eventloop_task_t * | tolerated_disconnected_task |
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. | |
Related Symbols inherited from pkrsrv_ref_counted_t | |
| #define | PKRSRV_REF_COUNTED_INIT(obj, 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. | |
| pkrsrv_ref_counted_t pkrsrv_lobby_client_t::ref_counted |
| pkrsrv_lobby_t* pkrsrv_lobby_client_t::lobby |
| pkrsrv_server_client_t* pkrsrv_lobby_client_t::client |
| pkrsrv_lobby_client_sessions_t* pkrsrv_lobby_client_t::sessions |
| pkrsrv_account_t* pkrsrv_lobby_client_t::account |
| pkrsrv_auth_session_t* pkrsrv_lobby_client_t::auth_session |
| bool pkrsrv_lobby_client_t::is_tolerant_disconnected |
| bool pkrsrv_lobby_client_t::is_disconnected |
| bool pkrsrv_lobby_client_t::is_connected |
| bool pkrsrv_lobby_client_t::is_revived |
| pkrsrv_eventloop_task_t* pkrsrv_lobby_client_t::tolerated_disconnected_task |
| struct on_account_updated_params |
| struct pkrsrv_lobby_new_params |
| struct pkrsrv_lobby_session_new_params |
Parameters of pkrsrv_lobby_session_new
| Data Fields | ||
|---|---|---|
| pkrsrv_auth_session_t * | auth_session | |
| pkrsrv_lobby_t * | lobby | |
| pkrsrv_table_t * | table | |
| struct pkrsrv_lobby_session_proceed__async_params |
| struct pkrsrv_lobby_session_poker_start__async_params |
| struct pkrsrv_lobby_session_poker_restart__async_params |
| #define PKRSRV_LOBBY_DISCONNECTION_TOLERANCE 20000 |
Lobby disconnection tolerance in milliseconds.
If a client is disconnected from the lobby, it will be removed from the lobby after this time. Default is 20 seconds.
| pkrsrv_lobby_client_sessions_t * pkrsrv_lobby_client_sessions_new | ( | ) |
| void pkrsrv_lobby_client_sessions_free | ( | pkrsrv_lobby_client_sessions_t * | sessions | ) |
| void on_account_updated__async | ( | pkrsrv_eventloop_task_t * | task | ) |
Used for pkrsrv_account_t::on_updated
| pkrsrv_lobby_t * pkrsrv_lobby_new | ( | pkrsrv_lobby_new_params_t | params | ) |
Creates a new lobby object.
| void pkrsrv_lobby_free | ( | pkrsrv_lobby_t * | lobby | ) |
Frees a lobby object.
| void pkrsrv_lobby_run | ( | pkrsrv_lobby_t * | lobby | ) |
Runs the lobby.
| pkrsrv_lobby_client_t * pkrsrv_lobby_client_new | ( | pkrsrv_lobby_t * | lobby, |
| pkrsrv_server_client_t * | client ) |
Creates a new lobby client object.
| 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_client_free | ( | pkrsrv_lobby_client_t * | lobby_client | ) |
Frees a lobby client object.
| bool reorder_updated_session | ( | pkrsrv_lobby_session_t * | updated, |
| int | old_length ) |
Efficient session reorderer
| updated | pkrsrv_lobby_session_t* The just-updated session |
| old_length | int Old number of total sessions before updated got updated |
| void pkrsrv_lobby_broadcast_sessions | ( | pkrsrv_lobby_t * | lobby | ) |
Broadcasts the sessions of the lobby to all clients.
| pkrsrv_lobby_sessions_t * pkrsrv_lobby_sessions_new | ( | ) |
Creates a new lobby sessions list.
| void pkrsrv_lobby_sessions_free | ( | pkrsrv_lobby_sessions_t * | sessions | ) |
Frees the lobby sessions list (stops & releases all sessions)
| pkrsrv_lobby_session_t * pkrsrv_lobby_session_new | ( | pkrsrv_lobby_session_new_params_t | params | ) |
Creates a new session object.
| void pkrsrv_lobby_session_free | ( | pkrsrv_lobby_session_t * | session | ) |
| void pkrsrv_lobby_sessions_add | ( | pkrsrv_lobby_sessions_t * | sessions, |
| pkrsrv_lobby_session_t * | session ) |
Adds a session to the lobby.
| 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_start | ( | pkrsrv_lobby_session_t * | session | ) |
Starts the session.
| void pkrsrv_lobby_session_stop | ( | pkrsrv_lobby_session_t * | session | ) |
Stops the session.
References pkrsrv_lobby_session_free().
| pkrsrv_lobby_session_t * pkrsrv_lobby_session_getby_id | ( | pkrsrv_lobby_t * | lobby, |
| uint64_t | id ) |
Gives the session by its ID.
References 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.
References lobby.
| void pkrsrv_lobby_session_proceed__async | ( | pkrsrv_eventloop_task_t * | task | ) |
Proceeds the session's game one step to future.
| void pkrsrv_lobby_session_poker_start__async | ( | pkrsrv_eventloop_task_t * | task | ) |
Starts the poker game of the session.
| void pkrsrv_lobby_session_poker_restart__async | ( | pkrsrv_eventloop_task_t * | task | ) |
Restarts the poker game of the session.
| 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_client_free | ( | pkrsrv_lobby_session_client_t * | session_client | ) |
Frees a session client 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_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_client_session_t * pkrsrv_lobby_client_session_new | ( | pkrsrv_lobby_session_t * | session | ) |
Creates a new lobby client session object.
References session.
| void pkrsrv_lobby_client_session_free | ( | pkrsrv_lobby_client_session_t * | joined_session | ) |
Frees a lobby client session object.
| 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.
| 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.
| bool pkrsrv_lobby_client_enter_session | ( | pkrsrv_lobby_client_t * | client, |
| pkrsrv_lobby_session_t * | session ) |
Makes a lobby enter a session.
References client.
| bool pkrsrv_lobby_client_leave_session | ( | pkrsrv_lobby_client_t * | client, |
| pkrsrv_lobby_client_session_t * | client_session ) |
Makes a lobby leave a session.
References client.
| 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.
| client | pkrsrv_lobby_client* The client |
| session | pkrsrv_lobby_session* The session |
| enterance_amount | uint64_t The amount of money to enter the session |
References client.
| bool pkrsrv_lobby_client_unjoin_session | ( | pkrsrv_lobby_client_t * | client, |
| pkrsrv_lobby_session_t * | session ) |
| 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.
References client.
| 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.
References client.
| 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.
| session | pkrsrv_lobby_session* The session |
| socket | int OS socket handler |
| 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.
| session | pkrsrv_lobby_session* The session |
| account_id | uint64_t The account 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.
| session | pkrsrv_lobby_session* The session |
| account | pkrsrv_account* The account |