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