1 | /*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ |
---|---|
2 | |* *| |
3 | |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| |
4 | |* Exceptions. *| |
5 | |* See https://llvm.org/LICENSE.txt for license information. *| |
6 | |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| |
7 | |* *| |
8 | |*===----------------------------------------------------------------------===*| |
9 | |* *| |
10 | |* This header provides the interface to C Index strings. *| |
11 | |* *| |
12 | \*===----------------------------------------------------------------------===*/ |
13 | |
14 | #ifndef LLVM_CLANG_C_CXSTRING_H |
15 | #define LLVM_CLANG_C_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 | * 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 differ 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 | typedef struct { |
44 | CXString *Strings; |
45 | unsigned Count; |
46 | } CXStringSet; |
47 | |
48 | /** |
49 | * Retrieve the character data associated with the given string. |
50 | */ |
51 | CINDEX_LINKAGE const char *clang_getCString(CXString string); |
52 | |
53 | /** |
54 | * Free the given string. |
55 | */ |
56 | CINDEX_LINKAGE void clang_disposeString(CXString string); |
57 | |
58 | /** |
59 | * Free the given string set. |
60 | */ |
61 | CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet *set); |
62 | |
63 | /** |
64 | * @} |
65 | */ |
66 | |
67 | #ifdef __cplusplus |
68 | } |
69 | #endif |
70 | #endif |
71 | |
72 |