diff -r 000000000000 -r 6474c204b198 other-licenses/7zstub/src/7zip/Common/StreamBinder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/other-licenses/7zstub/src/7zip/Common/StreamBinder.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,37 @@ +// StreamBinder.h + +#ifndef __STREAMBINDER_H +#define __STREAMBINDER_H + +#include "../IStream.h" +#include "../../Windows/Synchronization.h" + +class CStreamBinder +{ + NWindows::NSynchronization::CManualResetEvent *_allBytesAreWritenEvent; + NWindows::NSynchronization::CManualResetEvent *_thereAreBytesToReadEvent; + NWindows::NSynchronization::CManualResetEvent *_readStreamIsClosedEvent; + UInt32 _bufferSize; + const void *_buffer; +public: + // bool ReadingWasClosed; + UInt64 ProcessedSize; + CStreamBinder(): + _allBytesAreWritenEvent(NULL), + _thereAreBytesToReadEvent(NULL), + _readStreamIsClosedEvent(NULL) + {} + ~CStreamBinder(); + void CreateEvents(); + + void CreateStreams(ISequentialInStream **inStream, + ISequentialOutStream **outStream); + HRESULT Read(void *data, UInt32 size, UInt32 *processedSize); + void CloseRead(); + + HRESULT Write(const void *data, UInt32 size, UInt32 *processedSize); + void CloseWrite(); + void ReInit(); +}; + +#endif