mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-08 02:07:06 -06:00
9.21
This commit is contained in:
committed by
Kornel Lesiński
parent
de4f8c22fe
commit
35596517f2
@@ -1,32 +1,34 @@
|
||||
// StreamBinder.h
|
||||
|
||||
#ifndef __STREAMBINDER_H
|
||||
#define __STREAMBINDER_H
|
||||
#ifndef __STREAM_BINDER_H
|
||||
#define __STREAM_BINDER_H
|
||||
|
||||
#include "../../Windows/Synchronization.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;
|
||||
NWindows::NSynchronization::CManualResetEvent _canWrite_Event;
|
||||
NWindows::NSynchronization::CManualResetEvent _canRead_Event;
|
||||
NWindows::NSynchronization::CManualResetEvent _readingWasClosed_Event;
|
||||
bool _waitWrite;
|
||||
UInt32 _bufSize;
|
||||
const void *_buf;
|
||||
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();
|
||||
WRes CreateEvents();
|
||||
void CreateStreams(ISequentialInStream **inStream, ISequentialOutStream **outStream);
|
||||
void ReInit();
|
||||
HRESULT Read(void *data, UInt32 size, UInt32 *processedSize);
|
||||
HRESULT Write(const void *data, UInt32 size, UInt32 *processedSize);
|
||||
void CloseRead() { _readingWasClosed_Event.Set(); }
|
||||
void CloseWrite()
|
||||
{
|
||||
// _bufSize must be = 0
|
||||
_canRead_Event.Set();
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user