CXTranslationUnit.h [plain text]
#ifndef LLVM_CLANG_CXTRANSLATIONUNIT_H
#define LLVM_CLANG_CXTRANSLATIONUNIT_H
extern "C" {
struct CXTranslationUnitImpl {
void *CIdx;
void *TUData;
void *StringPool;
void *Diagnostics;
void *OverridenCursorsPool;
};
}
namespace clang {
class ASTUnit;
class CIndexer;
namespace cxtu {
CXTranslationUnitImpl *MakeCXTranslationUnit(CIndexer *CIdx, ASTUnit *TU);
class CXTUOwner {
CXTranslationUnitImpl *TU;
public:
CXTUOwner(CXTranslationUnitImpl *tu) : TU(tu) { }
~CXTUOwner();
CXTranslationUnitImpl *getTU() const { return TU; }
CXTranslationUnitImpl *takeTU() {
CXTranslationUnitImpl *retTU = TU;
TU = 0;
return retTU;
}
};
}}
#endif