- defined all substructures for a SA payload
[strongswan.git] / Source / charon / payloads / transform_attribute.h
1 /**
2 * @file transform_attribute.h
3 *
4 * @brief Declaration of the class transform_attribute_t.
5 *
6 * An object of this type represents an IKEv2 TRANSFORM attribute.
7 *
8 */
9
10 /*
11 * Copyright (C) 2005 Jan Hutter, Martin Willi
12 * Hochschule fuer Technik Rapperswil
13 *
14 * This program is free software; you can redistribute it and/or modify it
15 * under the terms of the GNU General Public License as published by the
16 * Free Software Foundation; either version 2 of the License, or (at your
17 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 * for more details.
23 */
24
25 #ifndef TRANSFORM_ATTRIBUTE_H_
26 #define TRANSFORM_ATTRIBUTE_H_
27
28 #include "../types.h"
29 #include "payload.h"
30
31 /**
32 * Object representing an IKEv2- TRANSFORM Attribute
33 *
34 * The TRANSFORM ATTRIBUTE format is described in RFC section 3.3.5.
35 *
36 */
37 typedef struct transform_attribute_s transform_attribute_t;
38
39 struct transform_attribute_s {
40 /**
41 * implements payload_t interface
42 */
43 payload_t payload_interface;
44
45 /**
46 * @brief Destroys an transform_attribute_t object.
47 *
48 * @param this transform_attribute_t object to destroy
49 * @return
50 * SUCCESS in any case
51 */
52 status_t (*destroy) (transform_attribute_t *this);
53 };
54
55 /**
56 * @brief Creates an empty transform_attribute_t object
57 *
58 * @return
59 * - created transform_attribute_t object, or
60 * - NULL if failed
61 */
62
63 transform_attribute_t *transform_attribute_create();
64
65 #endif /*TRANSFORM_ATTRIBUTE_H_*/