f26115f2c33b3e9173f9ebe57f7ed79f7c4f7e8d
[sip-router] / modules_k / dialog / dlg_load.h
1 /*
2  * $Id$
3  *
4  * dialog module - basic support for dialog tracking
5  *
6  * Copyright (C) 2006 Voice Sistem SRL
7  *
8  * This file is part of Kamailio, a free SIP server.
9  *
10  * Kamailio is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version
14  *
15  * Kamailio is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License 
21  * along with this program; if not, write to the Free Software 
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23  *
24  * History:
25  * --------
26  *  2006-04-14  initial version (bogdan)
27  */
28
29 #ifndef _DIALOG_DLG_LOAD_H_
30 #define _DIALOG_DLG_LOAD_H_
31
32 #include "dlg_cb.h"
33 #include "../../sr_module.h"
34
35 /* terminate_dlg function prototype */
36 typedef int (*terminate_dlg_f)(struct dlg_cell* dlg, str *hdrs);
37
38 struct dlg_binds {
39         register_dlgcb_f  register_dlgcb;
40         terminate_dlg_f terminate_dlg;
41     set_dlg_variable_f set_dlg_var;
42         get_dlg_variable_f get_dlg_var;
43 };
44
45
46 typedef int(*load_dlg_f)( struct dlg_binds *dlgb );
47 int load_dlg( struct dlg_binds *dlgb);
48
49 static inline int load_dlg_api( struct dlg_binds *dlgb )
50 {
51         load_dlg_f load_dlg;
52
53         /* import the DLG auto-loading function */
54         if ( !(load_dlg=(load_dlg_f)find_export("load_dlg", 0, 0)))
55                 return -1;
56
57         /* let the auto-loading function load all DLG stuff */
58         if (load_dlg( dlgb )==-1)
59                 return -1;
60
61         return 0;
62 }
63
64
65 #endif