CVTypeVisitor.h revision 341825
136285Sbrian//===- CVTypeVisitor.h ------------------------------------------*- C++ -*-===// 236285Sbrian// 336285Sbrian// The LLVM Compiler Infrastructure 436285Sbrian// 536285Sbrian// This file is distributed under the University of Illinois Open Source 636285Sbrian// License. See LICENSE.TXT for details. 736285Sbrian// 836285Sbrian//===----------------------------------------------------------------------===// 936285Sbrian 1036285Sbrian#ifndef LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H 1136285Sbrian#define LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H 1236285Sbrian 1336285Sbrian#include "llvm/DebugInfo/CodeView/CVRecord.h" 1436285Sbrian#include "llvm/DebugInfo/CodeView/TypeRecord.h" 1536285Sbrian#include "llvm/Support/Error.h" 1636285Sbrian 1736285Sbriannamespace llvm { 1836285Sbriannamespace codeview { 1936285Sbrianclass TypeCollection; 2036285Sbrianclass TypeVisitorCallbacks; 2136285Sbrian 2236285Sbrianenum VisitorDataSource { 2336285Sbrian VDS_BytesPresent, // The record bytes are passed into the visitation 2436285Sbrian // function. The algorithm should first deserialize them 2536285Sbrian // before passing them on through the pipeline. 2636452Sbrian VDS_BytesExternal // The record bytes are not present, and it is the 2736285Sbrian // responsibility of the visitor callback interface to 2836285Sbrian // supply the bytes. 2936285Sbrian}; 3036285Sbrian 3136285SbrianError visitTypeRecord(CVType &Record, TypeIndex Index, 3236285Sbrian TypeVisitorCallbacks &Callbacks, 3336285Sbrian VisitorDataSource Source = VDS_BytesPresent); 3436285SbrianError visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks, 3536285Sbrian VisitorDataSource Source = VDS_BytesPresent); 3636285Sbrian 3736285SbrianError visitMemberRecord(CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, 3836285Sbrian VisitorDataSource Source = VDS_BytesPresent); 3936285SbrianError visitMemberRecord(TypeLeafKind Kind, ArrayRef<uint8_t> Record, 4036285Sbrian TypeVisitorCallbacks &Callbacks); 4136285Sbrian 4236285SbrianError visitMemberRecordStream(ArrayRef<uint8_t> FieldList, 4336285Sbrian TypeVisitorCallbacks &Callbacks); 4436285Sbrian 4536285SbrianError visitTypeStream(const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, 4636285Sbrian VisitorDataSource Source = VDS_BytesPresent); 4736285SbrianError visitTypeStream(CVTypeRange Types, TypeVisitorCallbacks &Callbacks); 4836285SbrianError visitTypeStream(TypeCollection &Types, TypeVisitorCallbacks &Callbacks); 4936285Sbrian 5036285Sbrian} // end namespace codeview 5136285Sbrian} // end namespace llvm 5236285Sbrian 5336285Sbrian#endif // LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H 5436285Sbrian