/src/wxwidgets/include/wx/unix/private/pipestream.h
Line | Count | Source (jump to first uncovered line) |
1 | | /////////////////////////////////////////////////////////////////////////////// |
2 | | // Name: wx/unix/private/pipestream.h |
3 | | // Purpose: Unix wxPipeInputStream and wxPipeOutputStream declarations |
4 | | // Author: Vadim Zeitlin |
5 | | // Created: 2013-06-08 (extracted from wx/unix/pipe.h) |
6 | | // Copyright: (c) 2013 Vadim Zeitlin <vadim@wxwidgets.org> |
7 | | // Licence: wxWindows licence |
8 | | /////////////////////////////////////////////////////////////////////////////// |
9 | | |
10 | | #ifndef _WX_UNIX_PRIVATE_PIPESTREAM_H_ |
11 | | #define _WX_UNIX_PRIVATE_PIPESTREAM_H_ |
12 | | |
13 | | #include "wx/wfstream.h" |
14 | | |
15 | | class wxPipeInputStream : public wxFileInputStream |
16 | | { |
17 | | public: |
18 | 0 | explicit wxPipeInputStream(int fd) : wxFileInputStream(fd) { } |
19 | | |
20 | | // return true if the pipe is still opened |
21 | 0 | bool IsOpened() const { return !Eof(); } |
22 | | |
23 | | // return true if we have anything to read, don't block |
24 | | virtual bool CanRead() const override; |
25 | | }; |
26 | | |
27 | | class wxPipeOutputStream : public wxFileOutputStream |
28 | | { |
29 | | public: |
30 | 0 | wxPipeOutputStream(int fd) : wxFileOutputStream(fd) { } |
31 | | |
32 | | // Override the base class version to ignore "pipe full" errors: this is |
33 | | // not an error for this class. |
34 | | size_t OnSysWrite(const void *buffer, size_t size) override; |
35 | | }; |
36 | | |
37 | | #endif // _WX_UNIX_PRIVATE_PIPESTREAM_H_ |