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