[Support] json::OStream::flush(), which passes through to the underlying stream
authorSam McCall <sam.mccall@gmail.com>
Thu, 25 Apr 2019 13:33:18 +0000 (13:33 +0000)
committerSam McCall <sam.mccall@gmail.com>
Thu, 25 Apr 2019 13:33:18 +0000 (13:33 +0000)
llvm-svn: 359190

llvm/include/llvm/Support/JSON.h

index ebda4e8..fb6a6d4 100644 (file)
@@ -751,7 +751,6 @@ public:
 class OStream {
  public:
   using Block = llvm::function_ref<void()>;
-  // OStream does not buffer internally, and need never be flushed or destroyed.
   // If IndentSize is nonzero, output is pretty-printed.
   explicit OStream(llvm::raw_ostream &OS, unsigned IndentSize = 0)
       : OS(OS), IndentSize(IndentSize) {
@@ -763,6 +762,9 @@ class OStream {
     assert(Stack.back().HasValue && "Did not write top-level value");
   }
 
+  /// Flushes the underlying ostream. OStream does not buffer internally.
+  void flush() { OS.flush(); }
+
   // High level functions to output a value.
   // Valid at top-level (exactly once), in an attribute value (exactly once),
   // or in an array (any number of times).