X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e6efd1fd2f6cedda23140aff17f56b26ef7c2d2..14619f10b0bdb630206607abd0ce0319d45e095a:/include/wx/unix/pipe.h diff --git a/include/wx/unix/pipe.h b/include/wx/unix/pipe.h index d1a058beca..8e4af9824f 100644 --- a/include/wx/unix/pipe.h +++ b/include/wx/unix/pipe.h @@ -13,6 +13,7 @@ #define _WX_UNIX_PIPE_H_ #include +#include #include "wx/log.h" #include "wx/intl.h" @@ -52,6 +53,16 @@ public: return true; } + // switch the given end of the pipe to non-blocking IO + bool MakeNonBlocking(Direction which) + { + const int flags = fcntl(m_fds[which], F_GETFL, 0); + if ( flags == -1 ) + return false; + + return fcntl(m_fds[which], F_SETFL, flags | O_NONBLOCK) == 0; + } + // return TRUE if we were created successfully bool IsOk() const { return m_fds[Read] != INVALID_FD; } @@ -88,27 +99,5 @@ private: int m_fds[2]; }; -#if wxUSE_STREAMS && wxUSE_FILE - -#include "wx/wfstream.h" - -// ---------------------------------------------------------------------------- -// wxPipeInputStream: stream for reading from a pipe -// ---------------------------------------------------------------------------- - -class wxPipeInputStream : public wxFileInputStream -{ -public: - wxPipeInputStream(int fd) : wxFileInputStream(fd) { } - - // return TRUE if the pipe is still opened - bool IsOpened() const { return !Eof(); } - - // return TRUE if we have anything to read, don't block - virtual bool CanRead() const; -}; - -#endif // wxUSE_STREAMS && wxUSE_FILE - #endif // _WX_UNIX_PIPE_H_