Home | History | Annotate | Download | only in clang-c
      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