1//===- raw_os_ostream.h - std::ostream adaptor for raw_ostream --*- 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// This file defines the raw_os_ostream class. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_SUPPORT_RAW_OS_OSTREAM_H 15#define LLVM_SUPPORT_RAW_OS_OSTREAM_H 16 17#include "llvm/Support/raw_ostream.h" 18#include <iosfwd> 19 20namespace llvm { 21 22/// raw_os_ostream - A raw_ostream that writes to an std::ostream. This is a 23/// simple adaptor class. It does not check for output errors; clients should 24/// use the underlying stream to detect errors. 25class raw_os_ostream : public raw_ostream { 26 std::ostream &OS; 27 28 /// write_impl - See raw_ostream::write_impl. 29 void write_impl(const char *Ptr, size_t Size) override; 30 31 /// current_pos - Return the current position within the stream, not 32 /// counting the bytes currently in the buffer. 33 uint64_t current_pos() const override; 34 35public: 36 raw_os_ostream(std::ostream &O) : OS(O) {} 37 ~raw_os_ostream() override; 38}; 39 40} // end llvm namespace 41 42#endif 43