misc/libphysfs/lzma/CPP/7zip/Common/StreamBinder.h
changeset 13904 99b265e0d1d0
parent 13903 5f819b90d479
child 13905 b172a5d40eee
equal deleted inserted replaced
13903:5f819b90d479 13904:99b265e0d1d0
     1 // StreamBinder.h
       
     2 
       
     3 #ifndef __STREAMBINDER_H
       
     4 #define __STREAMBINDER_H
       
     5 
       
     6 #include "../IStream.h"
       
     7 #include "../../Windows/Synchronization.h"
       
     8 
       
     9 class CStreamBinder
       
    10 {
       
    11   NWindows::NSynchronization::CManualResetEvent _allBytesAreWritenEvent;
       
    12   NWindows::NSynchronization::CManualResetEvent _thereAreBytesToReadEvent;
       
    13   NWindows::NSynchronization::CManualResetEvent _readStreamIsClosedEvent;
       
    14   UInt32 _bufferSize;
       
    15   const void *_buffer;
       
    16 public:
       
    17   // bool ReadingWasClosed;
       
    18   UInt64 ProcessedSize;
       
    19   CStreamBinder() {}
       
    20   HRes CreateEvents();
       
    21 
       
    22   void CreateStreams(ISequentialInStream **inStream, 
       
    23       ISequentialOutStream **outStream);
       
    24   HRESULT Read(void *data, UInt32 size, UInt32 *processedSize);
       
    25   void CloseRead();
       
    26 
       
    27   HRESULT Write(const void *data, UInt32 size, UInt32 *processedSize);
       
    28   void CloseWrite();
       
    29   void ReInit();
       
    30 };
       
    31 
       
    32 #endif