1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 #ifndef SkDmuxWStream_DEFINED 8 #define SkDmuxWStream_DEFINED 9 10 #include "SkStream.h" 11 #include "SkTDArray.h" 12 13 /** 14 * A SkWStream Demultiplexer. If initialized with 15 * SkDmuxWStream dmuxWStream(NULL, 0); 16 * then it becomes a /dev/null. 17 */ 18 class SkDmuxWStream : public SkWStream { 19 public: 20 SkDmuxWStream(SkWStream* const streamArray[], size_t count); 21 ~SkDmuxWStream(); 22 virtual bool write(const void* buffer, size_t size) override; 23 virtual void newline() override; 24 virtual void flush() override; 25 virtual size_t bytesWritten() const override; 26 27 private: 28 SkTDArray<SkWStream*> fWStreams; 29 size_t fBytesWritten; 30 }; 31 32 #endif // SkDmuxWStream_DEFINED 33