| //===--- IndexDataConsumer.h - Consumer of indexing information -*- C++ -*-===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SWIFT_INDEX_INDEXDATACONSUMER_H |
| #define SWIFT_INDEX_INDEXDATACONSUMER_H |
| |
| #include "swift/Index/IndexSymbol.h" |
| |
| namespace swift { |
| namespace index { |
| |
| class IndexDataConsumer { |
| virtual void anchor(); |
| |
| public: |
| enum Action {Skip, Abort, Continue}; |
| |
| virtual ~IndexDataConsumer() {} |
| |
| virtual bool enableWarnings() { return false; } |
| virtual bool indexLocals() { return false; } |
| |
| virtual void failed(StringRef error) = 0; |
| virtual void warning(StringRef warning) {} |
| |
| virtual bool recordHash(StringRef hash, bool isKnown) = 0; |
| virtual bool startDependency(StringRef name, StringRef path, bool isClangModule, |
| bool isSystem, StringRef hash) = 0; |
| virtual bool finishDependency(bool isClangModule) = 0; |
| virtual Action startSourceEntity(const IndexSymbol &symbol) = 0; |
| virtual bool finishSourceEntity(SymbolInfo symInfo, SymbolRoleSet roles) = 0; |
| |
| virtual void finish() {} |
| }; |
| |
| } // end namespace index |
| } // end namespace swift |
| |
| #endif // SWIFT_INDEX_INDEXDATACONSUMER_H |