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 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 * \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 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 * \brief Retrieve the character data associated with the given string. 50 */ 51 CINDEX_LINKAGE const char *clang_getCString(CXString string); 52 53 /** 54 * \brief Free the given string. 55 */ 56 CINDEX_LINKAGE void clang_disposeString(CXString string); 57 58 /** 59 * \brief 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