Added add_segment() method to IETF attributes
[strongswan.git] / src / libimcv / imv / imv_remediation_string.h
1 /*
2 * Copyright (C) 2012 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 *
18 * @defgroup imv_remediation_string_t imv_remediation_string
19 * @{ @ingroup libimcv_imv
20 */
21
22 #ifndef IMV_REMEDIATION_STRING_H_
23 #define IMV_REMEDIATION_STRING_H_
24
25 #include "imv_lang_string.h"
26
27 #include <library.h>
28 #include <collections/linked_list.h>
29
30 typedef struct imv_remediation_string_t imv_remediation_string_t;
31
32 /**
33 * Defines and builds an IETF Remediation Instructions String
34 */
35 struct imv_remediation_string_t {
36
37 /**
38 * Add an individual remediation instruction to the string
39 *
40 * @param title instruction title
41 * @param description instruction description
42 * @param itemsheader optional items header or NULL
43 * @param items optional items list or NULL
44 */
45 void (*add_instruction)(imv_remediation_string_t *this,
46 imv_lang_string_t title[],
47 imv_lang_string_t description[],
48 imv_lang_string_t itemsheader[],
49 linked_list_t *items);
50
51 /**
52 * Gets the plaintext or XML encoding of the remediation instructions
53 *
54 * @return remediation instructions string
55 */
56 chunk_t (*get_encoding)(imv_remediation_string_t *this);
57
58 /**
59 * Destroys an imv_remediation_string_t object
60 */
61 void (*destroy)(imv_remediation_string_t *this);
62 };
63
64 /**
65 * Creates an IETF Remediation Instructions String object
66 *
67 * @param as_xml XML encoding if TRUE, plaintext otherwise
68 * @param lang Preferred language
69 */
70 imv_remediation_string_t* imv_remediation_string_create(bool as_xml, char *lang);
71
72 #endif /** IMV_REMEDIATION_STRING_H_ @}*/