euac_internals.h

00001 #ifndef __EUAC_INTERNALS_H
00002 #define __EUAC_INTERNALS_H
00003 
00004 /* internal structures */
00005 
00006 #include "events_uac.h"
00007 #include <cds/hash_table.h>
00008 #include <cds/ref_cntr.h>
00009 #include "../../modules/tm/tm_load.h"
00010 #include "trace.h"
00011 
00012 typedef struct {
00013         events_uac_t *first_uac;
00014         events_uac_t *last_uac;
00015         cds_mutex_t mutex;
00016         
00017         /* two hash tables for established-dialogs(from, to, callid) 
00018          * and for non-established dialogs (from, callid) 
00019          * as key is used dlg_id_t* !!! */
00020         hash_table_t ht_confirmed; /* hashed according dialog ids */
00021         hash_table_t ht_unconfirmed; /* hashed according partial dialog ids */
00022         
00023         struct tm_binds tmb;
00024         dlg_func_t dlgb;
00025 
00026         /* members for trace */
00027         int create_cnt;
00028         int destroy_cnt;
00029 
00030         reference_counter_group_t *rc_grp;
00031 } events_uacs_internals_t;
00032 
00033 extern events_uacs_internals_t *euac_internals;
00034 
00035 int init_events_uac_internals();
00036 void destroy_events_uac_internals();
00037 void lock_events_uac();
00038 void unlock_events_uac();
00039 
00040 #endif