testing: Start charon before Apache in tnc/tnccs-20-pdp-pt-tls
[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 generic_attr generic_attr
19 * @ingroup libimcv
20 *
21 * @defgroup libimcv_imc imc
22 * @ingroup libimcv
23 *
24 * @defgroup libimcv_imv imv
25 * @ingroup libimcv
26 *
27 * @defgroup pa_tnc pa_tnc
28 * @ingroup libimcv
29 *
30 * @defgroup libimcv_plugins plugins
31 * @ingroup libimcv
32 *
33 * @defgroup libimcv_seg seg
34 * @ingroup libimcv
35 *
36 * @defgroup libimcv_swid swid
37 * @ingroup libimcv
38 *
39 * @addtogroup libimcv
40 * @{
41 */
42
43 #ifndef IMCV_H_
44 #define IMCV_H_
45
46 #include "pa_tnc/pa_tnc_attr_manager.h"
47 #include "imv/imv_database.h"
48 #include "imv/imv_session_manager.h"
49 #include "pts/components/pts_component_manager.h"
50
51 #include <library.h>
52
53 /**
54 * Initialize libimcv.
55 *
56 * @param is_imv TRUE if called by IMV, FALSE if by IMC
57 * @return FALSE if initialization failed
58 */
59 bool libimcv_init(bool is_imv);
60
61 /**
62 * Deinitialize libimcv.
63 */
64 void libimcv_deinit(void);
65
66 /**
67 * PA-TNC attribute manager
68 */
69 extern pa_tnc_attr_manager_t* imcv_pa_tnc_attributes;
70
71 /**
72 * Global IMV database object
73 */
74 extern imv_database_t* imcv_db;
75
76 /**
77 * Global IMV session manager
78 */
79 extern imv_session_manager_t* imcv_sessions;
80
81 /**
82 * PTS Functional Component manager
83 */
84 extern pts_component_manager_t* imcv_pts_components;
85
86 #endif /** IMCV_H_ @}*/