51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/private/pipestream.h
|
|
// Purpose: MSW wxPipeInputStream and wxPipeOutputStream declarations
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2013-06-08 (extracted from src/msw/utilsexc.cpp)
|
|
// Copyright: (c) 2013 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_MSW_PRIVATE_PIPESTREAM_H_
|
|
#define _WX_MSW_PRIVATE_PIPESTREAM_H_
|
|
|
|
class wxPipeInputStream : public wxInputStream
|
|
{
|
|
public:
|
|
wxEXPLICIT wxPipeInputStream(HANDLE hInput);
|
|
virtual ~wxPipeInputStream();
|
|
|
|
// returns true if the pipe is still opened
|
|
bool IsOpened() const { return m_hInput != INVALID_HANDLE_VALUE; }
|
|
|
|
// returns true if there is any data to be read from the pipe
|
|
virtual bool CanRead() const;
|
|
|
|
protected:
|
|
virtual size_t OnSysRead(void *buffer, size_t len);
|
|
|
|
protected:
|
|
HANDLE m_hInput;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxPipeInputStream);
|
|
};
|
|
|
|
class wxPipeOutputStream: public wxOutputStream
|
|
{
|
|
public:
|
|
wxEXPLICIT wxPipeOutputStream(HANDLE hOutput);
|
|
virtual ~wxPipeOutputStream() { Close(); }
|
|
bool Close();
|
|
|
|
protected:
|
|
size_t OnSysWrite(const void *buffer, size_t len);
|
|
|
|
protected:
|
|
HANDLE m_hOutput;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxPipeOutputStream);
|
|
};
|
|
|
|
#endif // _WX_MSW_PRIVATE_PIPESTREAM_H_
|