PokerUnicorn
Loading...
Searching...
No Matches
Accounts

Account management and interactions. More...

Data Structures

Macros

#define PKRSRV_ACCOUNT_SELECT_COLUMNS   " id, id_token, name, avatar, balance, xmr_deposit_address, locked_balance, total_deposited, xmr_deposit_address_index, xmr_height "
 
#define PKRSRV_ACCOUNT_SELECT_COLUMNS_COUNT   11
 
#define PKRSRV_ACCOUNT_SELECT_COLUMNS_ARRAY   { "id", "id_token", "name", "avatar", "balance", "xmr_deposit_address", "locked_balance", "total_deposited", "xmr_deposit_address_index", "xmr_height", NULL }
 

Functions

pkrsrv_account_t * pkrsrv_account_new (pkrsrv_account_new_params_t params)
 
void pkrsrv_account_free (pkrsrv_account_t *player)
 
bool pkrsrv_account_set_balance (pkrsrv_account_t *account, uint64_t balance)
 
void pkrsrv_account_get_balance (pkrsrv_account_t *account, uint64_t balance)
 
pkrsrv_account_create_result_t pkrsrv_account_create (PGconn *pg_conn, pkrsrv_account_create_params_t params)
 
pkrsrv_account_update_result_t pkrsrv_account_update (PGconn *pg_conn, pkrsrv_account_update_params_t params)
 
bool pkrsrv_account_update_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t balance)
 
bool pkrsrv_account_add_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t amount)
 
bool pkrsrv_account_update_locked_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t locked_balance)
 
bool pkrsrv_account_remove_locked_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t amount)
 
bool pkrsrv_account_lock_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t amount)
 
bool pkrsrv_account_unlock_balance (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t amount)
 
bool pkrsrv_account_revert_locked_balanes (PGconn *pg_conn)
 
bool pkrsrv_account_update_xmr_height (PGconn *pg_conn, pkrsrv_account_t *account, uint64_t xmr_height)
 
pkrsrv_account_t * pkrsrv_account_getby_credentials (PGconn *pg_conn, pkrsrv_account_getby_credentials_params_t params)
 
pkrsrv_account_t * pkrsrv_account_getby_id (PGconn *pg_conn, uint64_t p_id)
 
void pkrsrv_account_fetch (PGconn *pg_conn, pkrsrv_account_t *p_account)
 
pkrsrv_account_iterator_tpkrsrv_account_iterator_new ()
 Creates a new account iterator.
 
void pkrsrv_account_iterator_free (pkrsrv_account_iterator_t *iterator)
 Frees the memory occupied by an account iterator.
 
pkrsrv_account_iterator_tpkrsrv_account_iterator_query (PGconn *pg_conn, pkrsrv_string_t *query, char **params, int params_length)
 Queries the database for account objects.
 
bool pkrsrv_account_iterator_next (pkrsrv_account_iterator_t *iterator)
 Moves the iterator to the next account.
 

Detailed Description

Account management and interactions.


Data Structure Documentation

◆ pkrsrv_account

struct pkrsrv_account

Account object.

+ Inheritance diagram for pkrsrv_account_t:

Data Fields

pkrsrv_ref_counted_t ref_counted
 
uint64_t id
 
pkrsrv_string_t * id_token
 
pkrsrv_string_t * name
 
pkrsrv_string_t * avatar
 
pkrsrv_string_t * xmr_deposit_address
 
uint64_t xmr_deposit_address_index
 
uint64_t balance
 
uint64_t locked_balance
 
uint64_t total_deposited
 
uint64_t xmr_height
 
void * owner
 
void(* on_updated )(pkrsrv_account_t *account, void *param)
 
void * on_updated_param
 
- 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_account_t::ref_counted

◆ id

uint64_t pkrsrv_account_t::id

◆ id_token

pkrsrv_string_t* pkrsrv_account_t::id_token

◆ name

pkrsrv_string_t* pkrsrv_account_t::name

◆ avatar

pkrsrv_string_t* pkrsrv_account_t::avatar

◆ xmr_deposit_address

pkrsrv_string_t* pkrsrv_account_t::xmr_deposit_address

◆ xmr_deposit_address_index

uint64_t pkrsrv_account_t::xmr_deposit_address_index

◆ balance

uint64_t pkrsrv_account_t::balance

◆ locked_balance

uint64_t pkrsrv_account_t::locked_balance

◆ total_deposited

uint64_t pkrsrv_account_t::total_deposited

◆ xmr_height

uint64_t pkrsrv_account_t::xmr_height

◆ owner

void* pkrsrv_account_t::owner

◆ on_updated

void(* pkrsrv_account_t::on_updated) (pkrsrv_account_t *account, void *param)

◆ on_updated_param

void* pkrsrv_account_t::on_updated_param

◆ pkrsrv_account_new_params_t

struct pkrsrv_account_new_params_t
Data Fields
uint64_t id
pkrsrv_string_t * id_token
pkrsrv_string_t * name
pkrsrv_string_t * avatar
pkrsrv_string_t * xmr_deposit_address
uint64_t xmr_deposit_address_index
uint64_t balance
uint64_t locked_balance
uint64_t total_deposited
uint64_t xmr_height

◆ pkrsrv_account_create_params_t

struct pkrsrv_account_create_params_t
Data Fields
pkrsrv_string_t * id_token
pkrsrv_string_t * name
pkrsrv_string_t * avatar
pkrsrv_string_t * password
pkrsrv_string_t * xmr_deposit_address
uint64_t xmr_deposit_address_index
uint64_t balance
uint64_t locked_balance
uint64_t total_deposited
uint64_t xmr_height

◆ pkrsrv_account_create_result_t

struct pkrsrv_account_create_result_t
Data Fields
pkrsrv_account_t * account
bool is_already_exists

◆ pkrsrv_account_update_params_t

struct pkrsrv_account_update_params_t
Data Fields
uint64_t id
pkrsrv_string_t * name
pkrsrv_string_t * avatar

◆ pkrsrv_account_update_result_t

struct pkrsrv_account_update_result_t
Data Fields
bool is_ok
bool is_avatar_too_big

◆ pkrsrv_account_getby_credentials_params_t

struct pkrsrv_account_getby_credentials_params_t
Data Fields
pkrsrv_string_t * id_token
pkrsrv_string_t * password

◆ pkrsrv_account_iterator_t

struct pkrsrv_account_iterator_t

Account iterator object.

This struct represents an iterator for iterating over a collection of account objects. It provides methods for creating, querying, and iterating over the accounts.

Examples
account_iterator_example.c.
+ Inheritance diagram for pkrsrv_account_iterator_t:

Data Fields

pkrsrv_ref_counted_t ref_counted
 
pkrsrv_account_t * current
 
int index
 
int count
 
PGresult * query_result
 
- 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_account_iterator_t::ref_counted

Macro for implementing reference counting

◆ current

pkrsrv_account_t* pkrsrv_account_iterator_t::current

Pointer to the current account

Examples
account_iterator_example.c.

◆ index

int pkrsrv_account_iterator_t::index

Index of the current account

◆ count

int pkrsrv_account_iterator_t::count

Total number of accounts

◆ query_result

PGresult* pkrsrv_account_iterator_t::query_result

Result of the query

Macro Definition Documentation

◆ PKRSRV_ACCOUNT_SELECT_COLUMNS

#define PKRSRV_ACCOUNT_SELECT_COLUMNS   " id, id_token, name, avatar, balance, xmr_deposit_address, locked_balance, total_deposited, xmr_deposit_address_index, xmr_height "

◆ PKRSRV_ACCOUNT_SELECT_COLUMNS_COUNT

#define PKRSRV_ACCOUNT_SELECT_COLUMNS_COUNT   11

◆ PKRSRV_ACCOUNT_SELECT_COLUMNS_ARRAY

#define PKRSRV_ACCOUNT_SELECT_COLUMNS_ARRAY   { "id", "id_token", "name", "avatar", "balance", "xmr_deposit_address", "locked_balance", "total_deposited", "xmr_deposit_address_index", "xmr_height", NULL }

Function Documentation

◆ pkrsrv_account_new()

pkrsrv_account_t * pkrsrv_account_new ( pkrsrv_account_new_params_t params)

◆ pkrsrv_account_free()

void pkrsrv_account_free ( pkrsrv_account_t * player)

◆ pkrsrv_account_set_balance()

bool pkrsrv_account_set_balance ( pkrsrv_account_t * account,
uint64_t balance )

! Safe account balance setter

◆ pkrsrv_account_get_balance()

void pkrsrv_account_get_balance ( pkrsrv_account_t * account,
uint64_t balance )

! Safe account balance getter

◆ pkrsrv_account_create()

pkrsrv_account_create_result_t pkrsrv_account_create ( PGconn * pg_conn,
pkrsrv_account_create_params_t params )

◆ pkrsrv_account_update()

pkrsrv_account_update_result_t pkrsrv_account_update ( PGconn * pg_conn,
pkrsrv_account_update_params_t params )

◆ pkrsrv_account_update_balance()

bool pkrsrv_account_update_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t balance )

◆ pkrsrv_account_add_balance()

bool pkrsrv_account_add_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t amount )

◆ pkrsrv_account_update_locked_balance()

bool pkrsrv_account_update_locked_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t locked_balance )

◆ pkrsrv_account_remove_locked_balance()

bool pkrsrv_account_remove_locked_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t amount )

◆ pkrsrv_account_lock_balance()

bool pkrsrv_account_lock_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t amount )

◆ pkrsrv_account_unlock_balance()

bool pkrsrv_account_unlock_balance ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t amount )

◆ pkrsrv_account_revert_locked_balanes()

bool pkrsrv_account_revert_locked_balanes ( PGconn * pg_conn)

◆ pkrsrv_account_update_xmr_height()

bool pkrsrv_account_update_xmr_height ( PGconn * pg_conn,
pkrsrv_account_t * account,
uint64_t xmr_height )

◆ pkrsrv_account_getby_credentials()

pkrsrv_account_t * pkrsrv_account_getby_credentials ( PGconn * pg_conn,
pkrsrv_account_getby_credentials_params_t params )

◆ pkrsrv_account_getby_id()

pkrsrv_account_t * pkrsrv_account_getby_id ( PGconn * pg_conn,
uint64_t p_id )

◆ pkrsrv_account_fetch()

void pkrsrv_account_fetch ( PGconn * pg_conn,
pkrsrv_account_t * p_account )

◆ pkrsrv_account_iterator_new()

pkrsrv_account_iterator_t * pkrsrv_account_iterator_new ( )

Creates a new account iterator.

This function creates a new account iterator object.

Returns
A pointer to the newly created account iterator.
Examples
account_iterator_example.c.

◆ pkrsrv_account_iterator_free()

void pkrsrv_account_iterator_free ( pkrsrv_account_iterator_t * iterator)

Frees the memory occupied by an account iterator.

This function frees the memory occupied by the given account iterator object.

Parameters
iteratorThe account iterator to be freed.
Examples
account_iterator_example.c.

◆ pkrsrv_account_iterator_query()

pkrsrv_account_iterator_t * pkrsrv_account_iterator_query ( PGconn * pg_conn,
pkrsrv_string_t * query,
char ** params,
int params_length )

Queries the database for account objects.

This function queries the given PostgreSQL connection for account objects using the specified query and parameters. It returns an account iterator object that can be used to iterate over the queried accounts.

Parameters
pg_connThe PostgreSQL connection.
queryThe query string.
paramsAn array of query parameters.
params_lengthThe length of the params array.
Returns
A pointer to the account iterator object.
Examples
account_iterator_example.c.

◆ pkrsrv_account_iterator_next()

bool pkrsrv_account_iterator_next ( pkrsrv_account_iterator_t * iterator)

Moves the iterator to the next account.

This function moves the iterator to the next account in the collection. It returns true if there is a next account, false otherwise.

Parameters
iteratorThe account iterator.
Returns
True if there is a next account, false otherwise.
Examples
account_iterator_example.c.