misc/libphysfs/lzma/CPP/7zip/Common/StreamBinder.h
branchui-scaling
changeset 15283 c4fd2813b127
parent 13390 0135e64c6c66
parent 15279 7ab5cf405686
child 15663 d92eeb468dad
equal deleted inserted replaced
13390:0135e64c6c66 15283:c4fd2813b127
     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