Separated IMV session management from IMV policy database
[strongswan.git] / src / libimcv / imcv.h
1 /*
2 * Copyright (C) 2011 Andreas Steffen, HSR Hochschule fuer Technik Rapperswil
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * for more details.
13 */
14
15 /**
16 * @defgroup libimcv libimcv
17 *
18 * @defgroup libimcv_imc imc
19 * @ingroup libimcv
20 *
21 * @defgroup libimcv_imv imv
22 * @ingroup libimcv
23 *
24 * @defgroup pa_tnc pa_tnc
25 * @ingroup libimcv
26 *
27 * @defgroup libimcv_plugins plugins
28 * @ingroup libimcv
29 *
30 * @addtogroup libimcv
31 * @{
32 */
33
34 #ifndef IMCV_H_
35 #define IMCV_H_
36
37 #include "pa_tnc/pa_tnc_attr_manager.h"
38 #include "imv/imv_database.h"
39 #include "imv/imv_session_manager.h"
40
41 #include <library.h>
42
43 /**
44 * Initialize libimcv.
45 *
46 * @param is_imv TRUE if called by IMV, FALSE if by IMC
47 * @return FALSE if initialization failed
48 */
49 bool libimcv_init(bool is_imv);
50
51 /**
52 * Deinitialize libimcv.
53 */
54 void libimcv_deinit(void);
55
56 /**
57 * PA-TNC attribute manager
58 */
59 extern pa_tnc_attr_manager_t* imcv_pa_tnc_attributes;
60
61 /**
62 * Global IMV database object
63 */
64 extern imv_database_t* imcv_db;
65
66 /**
67 * Global IMV session manager
68 */
69 extern imv_session_manager_t* imcv_sessions;
70
71 #endif /** IMCV_H_ @}*/