YAMLOutputStyle.h revision 321369
1//===- YAMLOutputStyle.h -------------------------------------- *- 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#ifndef LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H 11#define LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H 12 13#include "OutputStyle.h" 14#include "PdbYaml.h" 15 16#include "llvm/Support/ScopedPrinter.h" 17#include "llvm/Support/YAMLTraits.h" 18 19namespace llvm { 20namespace pdb { 21class ModuleDebugStreamRef; 22 23class YAMLOutputStyle : public OutputStyle { 24public: 25 YAMLOutputStyle(PDBFile &File); 26 27 Error dump() override; 28 29private: 30 Error dumpStringTable(); 31 Error dumpFileHeaders(); 32 Error dumpStreamMetadata(); 33 Error dumpStreamDirectory(); 34 Error dumpPDBStream(); 35 Error dumpDbiStream(); 36 Error dumpTpiStream(); 37 Error dumpIpiStream(); 38 39 void flush(); 40 41 PDBFile &File; 42 llvm::yaml::Output Out; 43 44 yaml::PdbObject Obj; 45}; 46} // namespace pdb 47} // namespace llvm 48 49#endif // LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H 50