/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkDmuxWStream.h" SkDmuxWStream::SkDmuxWStream(SkWStream* const streamArray[], size_t count) : fWStreams(streamArray, static_cast(count)), fBytesWritten(0) {} SkDmuxWStream::~SkDmuxWStream() { for (int i = 0; i < fWStreams.count(); ++i) { fWStreams[i]->flush(); } } bool SkDmuxWStream::write(const void* buffer, size_t size) { for (int i = 0; i < fWStreams.count(); ++i) { if (!fWStreams[i]->write(buffer, size)) { return false; } } fBytesWritten += size; return true; } void SkDmuxWStream::newline() { for (int i = 0; i < fWStreams.count(); ++i) { fWStreams[i]->newline(); } fBytesWritten += 1; // This may be a lie. } void SkDmuxWStream::flush() { for (int i = 0; i < fWStreams.count(); ++i) { fWStreams[i]->flush(); } } size_t SkDmuxWStream::bytesWritten() const { return fBytesWritten; }