33 lines
832 B
C++
33 lines
832 B
C++
// 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() {}
|
|
HRes 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
|