child-rekey: Uninstall old outbound SA earlier on initiator/winner
[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_swima swima
38 * @ingroup libimcv
39 *
40 * @addtogroup libimcv
41 * @{
42 */
43
44 #ifndef IMCV_H_
45 #define IMCV_H_
46
47 #include "pa_tnc/pa_tnc_attr_manager.h"
48 #include "imv/imv_database.h"
49 #include "imv/imv_session_manager.h"
50 #include "pts/components/pts_component_manager.h"
51
52 #include <library.h>
53
54 /**
55 * Initialize libimcv.
56 *
57 * @param is_imv TRUE if called by IMV, FALSE if by IMC
58 * @return FALSE if initialization failed
59 */
60 bool libimcv_init(bool is_imv);
61
62 /**
63 * Deinitialize libimcv.
64 */
65 void libimcv_deinit(void);
66
67 /**
68 * PA-TNC attribute manager
69 */
70 extern pa_tnc_attr_manager_t* imcv_pa_tnc_attributes;
71
72 /**
73 * Global IMV database object
74 */
75 extern imv_database_t* imcv_db;
76
77 /**
78 * Global IMV session manager
79 */
80 extern imv_session_manager_t* imcv_sessions;
81
82 /**
83 * PTS Functional Component manager
84 */
85 extern pts_component_manager_t* imcv_pts_components;
86
87 #endif /** IMCV_H_ @}*/