]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/llvm/tools/clang/include/clang-c/CXString.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / llvm / tools / clang / include / clang-c / CXString.h
1 /*===-- clang-c/CXString.h - C Index strings  --------------------*- C -*-===*\
2 |*                                                                            *|
3 |*                     The LLVM Compiler Infrastructure                       *|
4 |*                                                                            *|
5 |* This file is distributed under the University of Illinois Open Source      *|
6 |* License. See LICENSE.TXT for details.                                      *|
7 |*                                                                            *|
8 |*===----------------------------------------------------------------------===*|
9 |*                                                                            *|
10 |* This header provides the interface to C Index strings.                     *|
11 |*                                                                            *|
12 \*===----------------------------------------------------------------------===*/
13
14 #ifndef CLANG_CXSTRING_H
15 #define CLANG_CXSTRING_H
16
17 #include "clang-c/Platform.h"
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 /**
24  * \defgroup CINDEX_STRING String manipulation routines
25  * \ingroup CINDEX
26  *
27  * @{
28  */
29
30 /**
31  * \brief A character string.
32  *
33  * The \c CXString type is used to return strings from the interface when
34  * the ownership of that string might different from one call to the next.
35  * Use \c clang_getCString() to retrieve the string data and, once finished
36  * with the string data, call \c clang_disposeString() to free the string.
37  */
38 typedef struct {
39   const void *data;
40   unsigned private_flags;
41 } CXString;
42
43 /**
44  * \brief Retrieve the character data associated with the given string.
45  */
46 CINDEX_LINKAGE const char *clang_getCString(CXString string);
47
48 /**
49  * \brief Free the given string,
50  */
51 CINDEX_LINKAGE void clang_disposeString(CXString string);
52
53 /**
54  * @}
55  */
56
57 #ifdef __cplusplus
58 }
59 #endif
60 #endif
61