scscf_list.h

Go to the documentation of this file.
00001 
00056 #ifndef I_CSCF_SCSCF_LIST_H
00057 #define I_CSCF_SCSCF_LIST_H
00058 
00059 #include "../../sr_module.h"
00060 #include "mod.h"
00061 
00063 typedef struct _scscf_entry {
00064     str scscf_name; 
00065     int score;      
00067     struct _scscf_entry *next; 
00068 } scscf_entry;
00069 
00071 typedef struct _scscf_list {
00072     str call_id;            
00073     scscf_entry *list;      
00075     struct _scscf_list *next;   
00076     struct _scscf_list *prev;   
00077 } scscf_list;
00078 
00080 typedef struct {
00081     scscf_list *head;                   
00082     scscf_list *tail;                   
00083     gen_lock_t *lock;               
00084 } i_hash_slot;
00085 
00086 
00088 typedef struct _scscf_capabilities {
00089     int id_s_cscf;                  
00090     str scscf_name;                 
00091     int *capabilities;              
00092     int cnt;                        
00093 } scscf_capabilities;
00094 
00095 
00096 int I_get_capabilities();
00097 
00098 scscf_entry* I_get_capab_ordered(str scscf_name,int *m,int mcnt,int *o,int ocnt, str *p, int pcnt,int orig);
00099 
00100 
00101 inline unsigned int get_call_id_hash(str callid,int hash_size);
00102 
00103 int i_hash_table_init(int hash_size);
00104 
00105 void i_hash_table_destroy();
00106 
00107 inline void i_lock(unsigned int hash);
00108 inline void i_unlock(unsigned int hash);
00109 
00110 scscf_entry* new_scscf_entry(str name, int score, int orig);
00111 
00112 scscf_list* new_scscf_list(str callid,scscf_entry *sl);
00113 int add_scscf_list(str call_id,scscf_entry *sl);
00114 int is_scscf_list(str call_id);
00115 str take_scscf_entry(str call_id);
00116 void del_scscf_list(str call_id);
00117 void free_scscf_list(scscf_list *sl);
00118 void print_scscf_list(int log_level);
00119         
00120         
00121 int I_trans_in_processing(struct sip_msg* msg, char* str1, char* str2);
00122 int I_scscf_select(struct sip_msg* msg, char* str1, char* str2);
00123 int I_scscf_drop(struct sip_msg* msg, char* str1, char* str2);
00124         
00125 #endif

Generated on Thu Oct 23 04:14:38 2008 for Open IMS Core CSCFs by  doxygen 1.5.2