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