mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-09 02:07:06 -06:00
4.44 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
804edc5756
commit
d9666cf046
37
CPP/7zip/Common/StreamBinder.h
Executable file
37
CPP/7zip/Common/StreamBinder.h
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user