Move processor_t (thread-pool) to libhydra.
[strongswan.git] / src / libhydra / hydra.h
1 /*
2 * Copyright (C) 2010 Tobias Brunner
3 * 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 libhydra libhydra
18 *
19 * @defgroup attributes attributes
20 * @ingroup libhydra
21 *
22 * @defgroup hplugins plugins
23 * @ingroup libhydra
24 *
25 * @defgroup processing processing
26 * @ingroup libhydra
27 *
28 * @defgroup jobs jobs
29 * @ingroup processing
30 *
31 * @addtogroup libhydra
32 * @{
33 */
34
35 #ifndef HYDRA_H_
36 #define HYDRA_H_
37
38 typedef struct hydra_t hydra_t;
39
40 #include <attributes/attribute_manager.h>
41 #include <processing/processor.h>
42
43 #include <library.h>
44
45 /**
46 * IKE Daemon support object.
47 */
48 struct hydra_t {
49
50 /**
51 * manager for payload attributes
52 */
53 attribute_manager_t *attributes;
54
55 /**
56 * process jobs using a thread pool
57 */
58 processor_t *processor;
59
60 /**
61 * name of the daemon that initialized the library
62 */
63 const char *daemon;
64 };
65
66 /**
67 * The single instance of hydra_t.
68 *
69 * Set between calls to libhydra_init() and libhydra_deinit() calls.
70 */
71 extern hydra_t *hydra;
72
73 /**
74 * Initialize libhydra.
75 *
76 * The daemon's name is used to load daemon-specific settings.
77 *
78 * @param daemon name of the daemon that initializes the library
79 * @return FALSE if integrity check failed
80 */
81 bool libhydra_init(const char *daemon);
82
83 /**
84 * Deinitialize libhydra.
85 */
86 void libhydra_deinit();
87
88 #endif /** HYDRA_H_ @}*/