Data Structures | Functions

modules_k/usrloc/udomain.h File Reference

USRLOC - Usrloc domain structure. More...

#include <stdio.h>
#include "../../lib/kcore/statistics.h"
#include "../../locking.h"
#include "../../str.h"
#include "../../lib/srdb1/db.h"
#include "urecord.h"
#include "hslot.h"
#include "usrloc.h"
#include "urecord.h"
Include dependency graph for modules_k/usrloc/udomain.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

Functions


Detailed Description

Definition in file modules_k/usrloc/udomain.h.


Function Documentation

int db_timer_udomain ( udomain_t _d  ) 
Parameters:
_d cleaned domain
Returns:
0 on success, -1 on failure

Definition at line 452 of file modules_k/p_usrloc/udomain.c.

References expires_col, udomain::name, db_val_t::nul, _str::s, db_val_t::time_val, db_val_t::type, and db_val_t::val.

Referenced by synchronize_all_udomains().

Here is the caller graph for this function:

int delete_urecord ( udomain_t _d,
str _aor,
struct urecord _r 
)
Parameters:
_d domain where the record should be deleted
_aor address of record
_r deleted record
Returns:
0 on success, -1 if the record could not be deleted

Definition at line 684 of file modules_k/p_usrloc/udomain.c.

References ucontact::c, urecord::contacts, db_delete_urecord(), db_mode, DB_ONLY, delete_ucontact(), free_urecord(), get_static_urecord(), get_urecord(), ucontact::next, and release_urecord().

Referenced by mi_usrloc_rm_aor().

Here is the call graph for this function:

Here is the caller graph for this function:

void free_udomain ( udomain_t _d  ) 
Parameters:
_d freed domain

Definition at line 152 of file modules_k/p_usrloc/udomain.c.

References deinit_slot(), lock_ulslot(), udomain::size, udomain::table, and unlock_ulslot().

Here is the call graph for this function:

int get_urecord ( udomain_t _d,
str _uid,
struct urecord **  _r 
)
Parameters:
_d domain to search the record
_aor address of record
_r new created record
Returns:
0 if a record was found, 1 if nothing could be found

Definition at line 645 of file modules_k/p_usrloc/udomain.c.

References urecord::aorhash, db_load_urecord(), db_mode, DB_ONLY, _str::len, urecord::next, _str::s, udomain::size, and udomain::table.

Here is the call graph for this function:

int get_urecord_by_ruid ( udomain_t _d,
unsigned int  _aorhash,
str _ruid,
struct urecord **  _r,
struct ucontact **  _c 
)
Parameters:
_d domain to search the record
_aorhash hash id for address of record
_ruid record internal unique id
_r store pointer to location record
_c store pointer to contact structure
Returns:
0 if a record was found, 1 if nothing could be found

Definition at line 1036 of file modules_k/usrloc/udomain.c.

References urecord::aorhash, urecord::contacts, db_load_urecord_by_ruid(), db_mode, DB_ONLY, _str::len, lock_ulslot(), urecord::next, ucontact::ruid, _str::s, udomain::size, udomain::table, and unlock_ulslot().

Here is the call graph for this function:

int insert_urecord ( udomain_t _d,
str _uid,
struct urecord **  _r 
)
Parameters:
_d domain to insert the new record
_aor address of the record
_r new created record
Returns:
return 0 on success, -1 on failure

Definition at line 624 of file modules_k/p_usrloc/udomain.c.

References db_mode, DB_ONLY, get_static_urecord(), and mem_insert_urecord().

Here is the call graph for this function:

void lock_udomain ( udomain_t _d,
str _aor 
)

Timer handler for given domain.

Parameters:
_d domain
_aor adress of record, used as hash source for the lock slot

Definition at line 549 of file modules_k/p_usrloc/udomain.c.

References db_mode, DB_ONLY, udomain::size, udomain::table, and ul_lock_idx().

Referenced by mi_usrloc_add(), mi_usrloc_rm_aor(), mi_usrloc_rm_contact(), mi_usrloc_show_contact(), and preload_udomain().

Here is the call graph for this function:

Here is the caller graph for this function:

void lock_ulslot ( udomain_t _d,
int  i 
)
Parameters:
_d domain
i slot number

Definition at line 589 of file modules_k/p_usrloc/udomain.c.

References db_mode, DB_ONLY, udomain::table, and ul_lock_idx().

Referenced by free_udomain(), get_all_mem_ucontacts(), get_urecord_by_ruid(), mem_timer_udomain(), and mi_usrloc_dump().

Here is the call graph for this function:

Here is the caller graph for this function:

void mem_delete_urecord ( udomain_t _d,
struct urecord _r 
)
Parameters:
_d domain the record belongs to
_r deleted record

Definition at line 505 of file modules_k/p_usrloc/udomain.c.

References free_urecord(), urecord::slot, slot_rem(), and udomain::users.

Here is the call graph for this function:

int mem_insert_urecord ( udomain_t _d,
str _uid,
struct urecord **  _r 
)
Parameters:
_d domain the record belongs to
_aor address of record
_r new created record
Returns:
0 on success, -1 on failure

Definition at line 484 of file modules_k/p_usrloc/udomain.c.

References udomain::name, new_urecord(), udomain::size, slot_add(), udomain::table, and udomain::users.

Here is the call graph for this function:

void mem_timer_udomain ( udomain_t _d,
int  istart,
int  istep 
)
Parameters:
_d domain
istart index of hash table slot to start processing
istep step through hash table slots to process
_d domain

Definition at line 867 of file modules_k/usrloc/udomain.c.

References urecord::contacts, lock_ulslot(), mem_delete_urecord(), urecord::next, udomain::size, udomain::table, timer_urecord(), and unlock_ulslot().

Here is the call graph for this function:

int new_udomain ( str _n,
int  _s,
udomain_t **  _d 
)
Parameters:
_n is pointer to str representing name of the domain, the string is not copied, it should point to str structure stored in domain list
_s is hash table size
_d new created domain
Returns:
0 on success, -1 on failure

Definition at line 84 of file modules_k/p_usrloc/udomain.c.

References init_slot().

Referenced by new_dlist().

Here is the call graph for this function:

Here is the caller graph for this function:

int preload_udomain ( db1_con_t _c,
udomain_t _d 
)

Load all records from a udomain, useful to populate the memory cache on startup.

Parameters:
_c database connection
_d loaded domain
Returns:
0 on success, -1 on failure

Definition at line 367 of file modules_k/usrloc/udomain.c.

References callid_col, contact, contact_col, cseq_col, DB_CAP_FETCH, DB_CAPABILITY, dbrow2info(), domain_col, expires_col, flags_col, free_ucontact(), get_urecord(), instance_col, last_mod_col, _str::len, lock_udomain(), MAX_URI_SIZE, mem_insert_ucontact(), mem_insert_urecord(), methods_col, udomain::name, path_col, q_col, received_col, reg_id_col, RES_ROW_N, RES_ROWS, ROW_VALUES, ruid_col, _str::s, sock_col, ucontact::state, ul_fetch_rows, unlock_udomain(), use_domain, user_agent_col, user_col, VAL_NULL, and VAL_STRING.

Referenced by child_init().

Here is the call graph for this function:

Here is the caller graph for this function:

int testdb_udomain ( db1_con_t con,
udomain_t d 
)
Parameters:
con database connection
d domain

Definition at line 799 of file modules_k/usrloc/udomain.c.

References udomain::name, user_col, VAL_NULL, VAL_STRING, and VAL_TYPE.

Referenced by register_udomain().

Here is the caller graph for this function:

void unlock_udomain ( udomain_t _d,
str _aor 
)
Parameters:
_d domain
_aor address of record, uses as hash source for the lock slot

Definition at line 570 of file modules_k/p_usrloc/udomain.c.

References db_mode, DB_ONLY, udomain::size, udomain::table, and ul_release_idx().

Referenced by mi_usrloc_add(), mi_usrloc_rm_aor(), mi_usrloc_rm_contact(), mi_usrloc_show_contact(), and preload_udomain().

Here is the call graph for this function:

Here is the caller graph for this function:

void unlock_ulslot ( udomain_t _d,
int  i 
)
Parameters:
_d domain
i slot number

Definition at line 605 of file modules_k/p_usrloc/udomain.c.

References db_mode, DB_ONLY, udomain::table, and ul_release_idx().

Referenced by free_udomain(), get_all_mem_ucontacts(), get_urecord_by_ruid(), mem_timer_udomain(), and mi_usrloc_dump().

Here is the call graph for this function:

Here is the caller graph for this function: