Merged libpts into libimcv
[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 #include "pts/components/pts_component_manager.h"
41
42 #include <library.h>
43
44 /**
45 * Initialize libimcv.
46 *
47 * @param is_imv TRUE if called by IMV, FALSE if by IMC
48 * @return FALSE if initialization failed
49 */
50 bool libimcv_init(bool is_imv);
51
52 /**
53 * Deinitialize libimcv.
54 */
55 void libimcv_deinit(void);
56
57 /**
58 * PA-TNC attribute manager
59 */
60 extern pa_tnc_attr_manager_t* imcv_pa_tnc_attributes;
61
62 /**
63 * Global IMV database object
64 */
65 extern imv_database_t* imcv_db;
66
67 /**
68 * Global IMV session manager
69 */
70 extern imv_session_manager_t* imcv_sessions;
71
72 /**
73 * PTS Functional Component manager
74 */
75 extern pts_component_manager_t* imcv_pts_components;
76
77 #endif /** IMCV_H_ @}*/