Functions

modules_k/usrloc/urecord.h File Reference

USRLOC - Usrloc record structure. More...

#include <stdio.h>
#include <time.h>
#include "hslot.h"
#include "../../str.h"
#include "../../qvalue.h"
#include "ucontact.h"
#include "usrloc.h"
#include "hslot.h"
Include dependency graph for modules_k/usrloc/urecord.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions


Detailed Description

Definition in file modules_k/usrloc/urecord.h.


Function Documentation

int db_delete_urecord ( urecord_t _r  ) 
Parameters:
_r deleted record
Returns:
0 on success, -1 on failure

Definition at line 402 of file modules_k/usrloc/urecord.c.

References urecord::aor, urecord::domain, domain_col, _str::len, db_val_t::nul, _str::s, db_val_t::str_val, db_val_t::type, use_domain, user_col, and db_val_t::val.

int delete_ucontact ( urecord_t _r,
struct ucontact _c 
)
Parameters:
_r record where the contact belongs to
_c deleted contact
Returns:
0 on success, -1 on failure

Definition at line 486 of file modules_k/p_usrloc/urecord.c.

References db_delete_ucontact(), db_mode, DB_ONLY, mem_delete_ucontact(), run_ul_callbacks(), st_delete_ucontact(), and WRITE_THROUGH.

Here is the call graph for this function:

void free_urecord ( urecord_t _r  ) 

Free all memory used by the given structure. The structure must be removed from all linked lists first

Parameters:
_r freed record list

Definition at line 94 of file modules_k/p_usrloc/urecord.c.

References urecord::aor, urecord::contacts, db_mode, DB_ONLY, free_ucontact(), ucontact::next, and _str::s.

Here is the call graph for this function:

int get_ucontact ( urecord_t _r,
str _c,
str _callid,
str _path,
int  _cseq,
struct ucontact **  _co 
)
Parameters:
_r record where to search the contacts
_c contact string
_callid callid
_path path
_cseq CSEQ number
_co found contact
Returns:
0 - found, 1 - not found, -1 - invalid found, -2 - found, but to be skipped (same cseq)
Parameters:
_r record where to search the contacts
_c contact string
_callid callid
_cseq CSEQ number
_co found contact
Returns:
0 - found, 1 - not found, -1 - invalid found, -2 - found, but to be skipped (same cseq)

Definition at line 588 of file modules_k/p_usrloc/urecord.c.

References ucontact::callid, contact_callid_match(), contact_match(), contact_path_match(), urecord::contacts, ucontact::cseq, cseq_delay, get_act_time(), ucontact::last_modified, _str::len, matching_mode, and _str::s.

Referenced by get_ucontact_by_instance(), mi_usrloc_add(), and mi_usrloc_rm_contact().

Here is the call graph for this function:

Here is the caller graph for this function:

int get_ucontact_by_instance ( urecord_t _r,
str _c,
ucontact_info_t _ci,
ucontact_t **  _co 
)
Parameters:
_r record where to search the contacts
_c contact string
_ci contact info (callid, cseq, instance, ...)
_co found contact
Returns:
0 - found, 1 - not found, -1 - invalid found, -2 - found, but to be skipped (same cseq)

Definition at line 645 of file modules_k/usrloc/urecord.c.

References ucontact_info::callid, urecord::contacts, ucontact_info::cseq, get_ucontact(), ucontact::instance, ucontact_info::instance, _str::len, ucontact::next, ucontact_info::path, ucontact::reg_id, ucontact_info::reg_id, and _str::s.

Here is the call graph for this function:

int insert_ucontact ( urecord_t _r,
str _contact,
ucontact_info_t _ci,
ucontact_t **  _c 
)
Parameters:
_r record into the new contact should be inserted
_contact contact string
_ci contact information
_c new created contact
Returns:
0 on success, -1 on failure

Definition at line 455 of file modules_k/p_usrloc/urecord.c.

References db_insert_ucontact(), db_mode, DB_ONLY, mem_insert_ucontact(), run_ul_callbacks(), and WRITE_THROUGH.

Referenced by mi_usrloc_add().

Here is the call graph for this function:

Here is the caller graph for this function:

void mem_delete_ucontact ( urecord_t _r,
ucontact_t _c 
)
Parameters:
_r record this contact belongs to
_c deleted contact

Definition at line 218 of file modules_k/p_usrloc/urecord.c.

References free_ucontact(), mem_remove_ucontact(), and urecord::slot.

Here is the call graph for this function:

ucontact_t* mem_insert_ucontact ( urecord_t _r,
str _c,
ucontact_info_t _ci 
)

Add a new contact in memory, contacts are ordered by: 1) q value, 2) descending modification time

Parameters:
_r record this contact belongs to
_c contact
_ci contact information
Returns:
pointer to new created contact on success, 0 on failure

Definition at line 149 of file modules_k/p_usrloc/urecord.c.

References urecord::aor, ucontact::c, urecord::contacts, desc_time_order, urecord::domain, new_ucontact(), ucontact::next, ucontact::prev, ucontact::q, and urecord::slot.

Referenced by db_load_urecord(), db_load_urecord_by_ruid(), insert_ucontact(), and preload_udomain().

Here is the call graph for this function:

Here is the caller graph for this function:

void mem_remove_ucontact ( urecord_t _r,
ucontact_t _c 
)
Parameters:
_r record this contact belongs to
_c removed contact

Definition at line 197 of file modules_k/p_usrloc/urecord.c.

References urecord::contacts, ucontact::next, and ucontact::prev.

int new_urecord ( str _dom,
str _uid,
urecord_t **  _r 
)

Create and initialize new record structure

Parameters:
_dom domain name
_aor address of record
_r pointer to the new record
Returns:
0 on success, negative on failure

Hash table slot.

Parameters:
_dom domain name
_aor address of record
_r pointer to the new record
Returns:
0 on success, negative on failure

Definition at line 62 of file modules_k/p_usrloc/urecord.c.

References _str::len, and _str::s.

void print_urecord ( FILE *  _f,
urecord_t _r 
)
Parameters:
_f print output
_r printed record

Definition at line 117 of file modules_k/p_usrloc/urecord.c.

References urecord::aor, urecord::aorhash, urecord::contacts, urecord::domain, _str::len, ucontact::next, print_ucontact(), _str::s, and urecord::slot.

Here is the call graph for this function:

void release_urecord ( urecord_t _r  ) 
Warning:
Failing to calls this function after get_urecord will result in a memory leak when the DB_ONLY mode is used. When the records is later deleted, e.g. with delete_urecord, then its not necessary, as this function already releases the record.
Parameters:
_r released record

Definition at line 437 of file modules_k/p_usrloc/urecord.c.

References urecord::contacts, db_mode, DB_ONLY, free_urecord(), mem_delete_urecord(), and urecord::slot.

Here is the call graph for this function:

void timer_urecord ( urecord_t _r  ) 

Helper function that run the appropriate timer function, depending on the db_mode setting.

Parameters:
_r processed record

Definition at line 378 of file modules_k/p_usrloc/urecord.c.

References db_mode, NO_DB, nodb_timer(), wb_timer(), WRITE_BACK, and WRITE_THROUGH.

Here is the call graph for this function: