blob: 3204bdd9218dc3ab28fa076800de239471beba74 [file] [log] [blame]
Zachary Turner7120a472016-06-06 20:37:05 +00001//===- 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/DebugInfo/CodeView/TypeDumper.h"
17#include "llvm/Support/ScopedPrinter.h"
18#include "llvm/Support/YAMLTraits.h"
19
20namespace llvm {
21namespace pdb {
22class YAMLOutputStyle : public OutputStyle {
23public:
24 YAMLOutputStyle(PDBFile &File);
25
Zachary Turnera30bd1a2016-06-30 17:42:48 +000026 Error dump() override;
Zachary Turner7120a472016-06-06 20:37:05 +000027
28private:
Zachary Turnera30bd1a2016-06-30 17:42:48 +000029 Error dumpFileHeaders();
30 Error dumpStreamMetadata();
31 Error dumpStreamDirectory();
Zachary Turner8848a7a2016-07-06 18:05:57 +000032 Error dumpPDBStream();
Zachary Turnerdbeaea72016-07-11 21:45:26 +000033 Error dumpDbiStream();
Zachary Turnerac5763e2016-08-18 16:49:29 +000034 Error dumpTpiStream();
Zachary Turnera30bd1a2016-06-30 17:42:48 +000035
36 void flush();
37
Zachary Turner7120a472016-06-06 20:37:05 +000038 PDBFile &File;
39 llvm::yaml::Output Out;
40
41 yaml::PdbObject Obj;
42};
43} // namespace pdb
44} // namespace llvm
45
46#endif // LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H