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