119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//===--- raw_os_ostream.cpp - Implement the raw_os_ostream class ----------===//
219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//                     The LLVM Compiler Infrastructure
419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman// This file is distributed under the University of Illinois Open Source
619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman// License. See LICENSE.TXT for details.
719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//===----------------------------------------------------------------------===//
919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
1019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman// This implements support adapting raw_ostream to std::ostream.
1119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//
1219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//===----------------------------------------------------------------------===//
1319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
1419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#include "llvm/Support/raw_os_ostream.h"
1519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman#include <ostream>
1619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Baumanusing namespace llvm;
1719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
1819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//===----------------------------------------------------------------------===//
1919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//  raw_os_ostream
2019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman//===----------------------------------------------------------------------===//
2119bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
2219bac1e08be200c31efd26f0f5fd144c9b3eefd3John Baumanraw_os_ostream::~raw_os_ostream() {
2319bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  flush();
2419bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman}
2519bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
2619bac1e08be200c31efd26f0f5fd144c9b3eefd3John Baumanvoid raw_os_ostream::write_impl(const char *Ptr, size_t Size) {
2719bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman  OS.write(Ptr, Size);
2819bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman}
2919bac1e08be200c31efd26f0f5fd144c9b3eefd3John Bauman
3019bac1e08be200c31efd26f0f5fd144c9b3eefd3John Baumanuint64_t raw_os_ostream::current_pos() const { return OS.tellp(); }
31