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"

Go to the source code of this file.
Definition in file modules_k/usrloc/udomain.h.
| int db_timer_udomain | ( | udomain_t * | _d | ) |
| _d | cleaned domain |
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().

| _d | domain where the record should be deleted | |
| _aor | address of record | |
| _r | deleted record |
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().


| void free_udomain | ( | udomain_t * | _d | ) |
| _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().

| _d | domain to search the record | |
| _aor | address of record | |
| _r | new created record |
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.

| int get_urecord_by_ruid | ( | udomain_t * | _d, | |
| unsigned int | _aorhash, | |||
| str * | _ruid, | |||
| struct urecord ** | _r, | |||
| struct ucontact ** | _c | |||
| ) |
| _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 |
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().

| _d | domain to insert the new record | |
| _aor | address of the record | |
| _r | new created record |
Definition at line 624 of file modules_k/p_usrloc/udomain.c.
References db_mode, DB_ONLY, get_static_urecord(), and mem_insert_urecord().

Timer handler for given domain.
| _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().


| void lock_ulslot | ( | udomain_t * | _d, | |
| int | i | |||
| ) |
| _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().


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

| _d | domain the record belongs to | |
| _aor | address of record | |
| _r | new created record |
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.

| void mem_timer_udomain | ( | udomain_t * | _d, | |
| int | istart, | |||
| int | istep | |||
| ) |
| _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().

| _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 |
Definition at line 84 of file modules_k/p_usrloc/udomain.c.
References init_slot().
Referenced by new_dlist().


Load all records from a udomain, useful to populate the memory cache on startup.
| _c | database connection | |
| _d | loaded domain |
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().


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

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


| void unlock_ulslot | ( | udomain_t * | _d, | |
| int | i | |||
| ) |
| _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().


1.7.1