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 20extern "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 */ 38typedef 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 */ 46CINDEX_LINKAGE const char *clang_getCString(CXString string); 47 48/** 49 * \brief Free the given string. 50 */ 51CINDEX_LINKAGE void clang_disposeString(CXString string); 52 53/** 54 * @} 55 */ 56 57#ifdef __cplusplus 58} 59#endif 60#endif 61 62