PokerUnicorn
Loading...
Searching...
No Matches
Lobby

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  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...
 

Functions

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_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.
 

Detailed Description

Lobby and session management and interactions.


Data Structure Documentation

◆ pkrsrv_lobby

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
 
- 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_lobby_t::ref_counted

◆ server

pkrsrv_server_t* pkrsrv_lobby_t::server

◆ mutex

pthread_mutex_t pkrsrv_lobby_t::mutex

◆ process_latency

int pkrsrv_lobby_t::process_latency

◆ sessions

pkrsrv_lobby_sessions_t* pkrsrv_lobby_t::sessions

◆ eventloop

pkrsrv_eventloop_t* pkrsrv_lobby_t::eventloop

◆ pkrsrv_lobby_sessions

struct pkrsrv_lobby_sessions

Lobby sessions list structure.

Public Member Functions

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
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_lobby_sessions_t::ref_counted

◆ next

pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::next

◆ prev

pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::prev

◆ terminal

pkrsrv_lobby_session_t* pkrsrv_lobby_sessions_t::terminal

◆ length

int pkrsrv_lobby_sessions_t::length

◆ pkrsrv_lobby_session

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.
 
- 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
 
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.
 

Field Documentation

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_lobby_session_t::ref_counted

◆ next

pkrsrv_lobby_session_t* pkrsrv_lobby_session_t::next

◆ prev

pkrsrv_lobby_session_t* pkrsrv_lobby_session_t::prev

◆ pg_conn

PGconn* pkrsrv_lobby_session_t::pg_conn

◆ lobby

pkrsrv_lobby_t* pkrsrv_lobby_session_t::lobby

◆ id

pkrsrv_uniqid_uuid_t pkrsrv_lobby_session_t::id

◆ process_latency

int pkrsrv_lobby_session_t::process_latency

◆ poker

pkrsrv_poker_t* pkrsrv_lobby_session_t::poker

◆ mutex

pthread_mutex_t pkrsrv_lobby_session_t::mutex

◆ is_running

bool pkrsrv_lobby_session_t::is_running

◆ proceed_task

pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::proceed_task

◆ poker_start_task

pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::poker_start_task

◆ poker_restart_task

pkrsrv_eventloop_task_t* pkrsrv_lobby_session_t::poker_restart_task

◆ clients

pkrsrv_lobby_session_clients_t* pkrsrv_lobby_session_t::clients

◆ joined_clients_count

int pkrsrv_lobby_session_t::joined_clients_count

◆ pkrsrv_lobby_session_clients

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
 

Field Documentation

◆ next

pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::next

◆ prev

pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::prev

◆ terminal

pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_clients_t::terminal

◆ length

int pkrsrv_lobby_session_clients_t::length

◆ pkrsrv_lobby_session_client

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.
 
- 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_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.
 

Field Documentation

◆ next

pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_client_t::next

◆ prev

pkrsrv_lobby_session_client_t* pkrsrv_lobby_session_client_t::prev

◆ client

pkrsrv_lobby_client_t* pkrsrv_lobby_session_client_t::client

◆ is_joined

bool pkrsrv_lobby_session_client_t::is_joined

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_lobby_session_client_t::ref_counted

◆ pkrsrv_lobby_client_session

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.
 
- 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_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.
 

Field Documentation

◆ next

pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_session_t::next

◆ prev

pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_session_t::prev

◆ session

pkrsrv_lobby_session_t* pkrsrv_lobby_client_session_t::session

◆ is_joined

bool pkrsrv_lobby_client_session_t::is_joined

◆ ref_counted

pkrsrv_ref_counted_t pkrsrv_lobby_client_session_t::ref_counted

◆ pkrsrv_lobby_client_sessions

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
 

Field Documentation

◆ next

pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::next

◆ prev

pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::prev

◆ terminal

pkrsrv_lobby_client_session_t* pkrsrv_lobby_client_sessions_t::terminal

◆ length

int pkrsrv_lobby_client_sessions_t::length

◆ pkrsrv_lobby_client

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.
 
- 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
 
pkrsrv_lobby_t * lobby
 
pkrsrv_server_client_t * client
 
pkrsrv_lobby_client_sessions_t * sessions
 
pkrsrv_account_t * account
 
- 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_lobby_client_t::ref_counted

◆ lobby

pkrsrv_lobby_t* pkrsrv_lobby_client_t::lobby

◆ client

pkrsrv_server_client_t* pkrsrv_lobby_client_t::client

◆ sessions

pkrsrv_lobby_client_sessions_t* pkrsrv_lobby_client_t::sessions

◆ account

pkrsrv_account_t* pkrsrv_lobby_client_t::account

◆ on_account_updated_params

struct on_account_updated_params

Parameters of on_account_updated__async

Data Fields
pkrsrv_account_t * account
pkrsrv_lobby_client_t * lobby_client

◆ pkrsrv_lobby_new_params

struct pkrsrv_lobby_new_params

Parameters of pkrsrv_lobby_new

Data Fields
int port
char * bind_address
int process_latency
int max_clients

◆ pkrsrv_lobby_session_new_params

struct pkrsrv_lobby_session_new_params

Parameters of pkrsrv_lobby_session_new

Data Fields
pkrsrv_lobby_t * lobby
pkrsrv_table_t * table

◆ pkrsrv_lobby_session_proceed__async_params

struct pkrsrv_lobby_session_proceed__async_params

Parameters of pkrsrv_lobby_session_proceed__async

Data Fields
pkrsrv_lobby_session_t * session

◆ pkrsrv_lobby_session_poker_start__async_params

struct pkrsrv_lobby_session_poker_start__async_params

Parameters of pkrsrv_lobby_session_poker_start__async

Data Fields
pkrsrv_lobby_session_t * session

◆ pkrsrv_lobby_session_poker_restart__async_params

struct pkrsrv_lobby_session_poker_restart__async_params

Parameters of pkrsrv_lobby_session_poker_restart__async

Data Fields
pkrsrv_lobby_session_t * session

Function Documentation

◆ on_account_updated__async()

void on_account_updated__async ( pkrsrv_eventloop_task_t * task)

Used for pkrsrv_account_t::on_updated

◆ pkrsrv_lobby_new()

pkrsrv_lobby_t * pkrsrv_lobby_new ( pkrsrv_lobby_new_params_t params)

Creates a new lobby object.

◆ pkrsrv_lobby_free()

void pkrsrv_lobby_free ( pkrsrv_lobby_t * lobby)

Frees a lobby object.

◆ pkrsrv_lobby_run()

void pkrsrv_lobby_run ( pkrsrv_lobby_t * lobby)

Runs the lobby.

◆ pkrsrv_lobby_client_new()

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_client_set_account()

void pkrsrv_lobby_client_set_account ( pkrsrv_lobby_client_t * lobby_client,
pkrsrv_account_t * account )

Sets the account of a lobby client.

◆ pkrsrv_lobby_client_free()

void pkrsrv_lobby_client_free ( pkrsrv_lobby_client_t * lobby_client)

Frees a lobby client object.

◆ reorder_updated_session()

bool reorder_updated_session ( pkrsrv_lobby_session_t * updated,
int old_length )

Efficient session reorderer  

Parameters
updatedpkrsrv_lobby_session_t* The just-updated session
old_lengthint Old number of total sessions before updated got updated

◆ pkrsrv_lobby_broadcast_sessions()

void pkrsrv_lobby_broadcast_sessions ( pkrsrv_lobby_t * lobby)

Broadcasts the sessions of the lobby to all clients.

◆ pkrsrv_lobby_session_new()

pkrsrv_lobby_session_t * pkrsrv_lobby_session_new ( pkrsrv_lobby_session_new_params_t params)

Creates a new session object.

◆ pkrsrv_lobby_session_free()

void pkrsrv_lobby_session_free ( pkrsrv_lobby_session_t * session)

Frees a session object.

Proceeds the session.

◆ pkrsrv_lobby_sessions_add()

void pkrsrv_lobby_sessions_add ( pkrsrv_lobby_sessions_t * sessions,
pkrsrv_lobby_session_t * session )

Adds a session to the lobby.

◆ pkrsrv_lobby_sessions_remove()

void pkrsrv_lobby_sessions_remove ( pkrsrv_lobby_sessions_t * sessions,
pkrsrv_lobby_session_t * session )

Removes a session from the lobby.

◆ pkrsrv_lobby_session_start()

void pkrsrv_lobby_session_start ( pkrsrv_lobby_session_t * session)

Starts the session.

◆ pkrsrv_lobby_session_stop()

void pkrsrv_lobby_session_stop ( pkrsrv_lobby_session_t * session)

Stops the session.

◆ pkrsrv_lobby_session_getby_id()

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_getby_table_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.

◆ pkrsrv_lobby_session_proceed__async()

void pkrsrv_lobby_session_proceed__async ( pkrsrv_eventloop_task_t * task)

Proceeds the session's game one step to future.

◆ pkrsrv_lobby_session_poker_start__async()

void pkrsrv_lobby_session_poker_start__async ( pkrsrv_eventloop_task_t * task)

Starts the poker game of the session.

◆ pkrsrv_lobby_session_poker_restart__async()

void pkrsrv_lobby_session_poker_restart__async ( pkrsrv_eventloop_task_t * task)

Restarts the poker game of the session.

◆ pkrsrv_lobby_session_client_new()

pkrsrv_lobby_session_client_t * pkrsrv_lobby_session_client_new ( pkrsrv_lobby_client_t * lobby_client)

Creates a new session client object.

◆ pkrsrv_lobby_session_client_free()

void pkrsrv_lobby_session_client_free ( pkrsrv_lobby_session_client_t * session_client)

Frees a session client object.

◆ pkrsrv_lobby_session_clients_add()

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.

◆ pkrsrv_lobby_session_clients_remove()

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_new()

pkrsrv_lobby_client_session_t * pkrsrv_lobby_client_session_new ( pkrsrv_lobby_session_t * session)

Creates a new lobby client session object.

◆ pkrsrv_lobby_client_session_free()

void pkrsrv_lobby_client_session_free ( pkrsrv_lobby_client_session_t * joined_session)

Frees a lobby client session object.

◆ pkrsrv_lobby_client_sessions_add()

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_sessions_remove()

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_enter_session()

bool pkrsrv_lobby_client_enter_session ( pkrsrv_lobby_client_t * client,
pkrsrv_lobby_session_t * session )

Makes a lobby enter a session.

◆ pkrsrv_lobby_client_leave_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.

◆ pkrsrv_lobby_client_join_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.

Parameters
clientpkrsrv_lobby_client* The client
sessionpkrsrv_lobby_session* The session
enterance_amountuint64_t The amount of money to enter the session
Returns
Is the join was successful?

◆ pkrsrv_lobby_client_unjoin_session()

bool pkrsrv_lobby_client_unjoin_session ( pkrsrv_lobby_client_t * client,
pkrsrv_lobby_session_t * session )

Makes a lobby unjoin a session.

Returns
true

◆ pkrsrv_lobby_client_get_session_by_id()

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_getby_table_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.

◆ pkrsrv_lobby_session_client_getby_socket()

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.

Parameters
sessionpkrsrv_lobby_session* The session
socketint OS socket handler
Returns
The client

◆ pkrsrv_lobby_session_client_getby_account_id()

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.

Parameters
sessionpkrsrv_lobby_session* The session
account_iduint64_t The account ID
Returns
The client

◆ pkrsrv_lobby_client_session_getby_session_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.

Parameters
sessionpkrsrv_lobby_session* The session
accountpkrsrv_account* The account
Returns
The client