1 //===--- IndexDataConsumer.h - Abstract index data consumer ---------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_CLANG_INDEX_INDEXDATACONSUMER_H
11 #define LLVM_CLANG_INDEX_INDEXDATACONSUMER_H
13 #include "clang/Index/IndexSymbol.h"
26 class IndexDataConsumer {
32 const DeclContext *ContainerDC;
35 virtual ~IndexDataConsumer() {}
37 virtual void initialize(ASTContext &Ctx) {}
39 /// \returns true to continue indexing, or false to abort.
40 virtual bool handleDeclOccurence(const Decl *D, SymbolRoleSet Roles,
41 ArrayRef<SymbolRelation> Relations,
42 FileID FID, unsigned Offset,
45 /// \returns true to continue indexing, or false to abort.
46 virtual bool handleMacroOccurence(const IdentifierInfo *Name,
47 const MacroInfo *MI, SymbolRoleSet Roles,
48 FileID FID, unsigned Offset);
50 /// \returns true to continue indexing, or false to abort.
51 virtual bool handleModuleOccurence(const ImportDecl *ImportD,
53 FileID FID, unsigned Offset);
55 virtual void finish() {}
58 virtual void _anchor();