Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Archive / Common / CrossThreadProgress.h
1 // CrossThreadProgress.h\r
2 \r
3 #ifndef __CROSSTHREADPROGRESS_H\r
4 #define __CROSSTHREADPROGRESS_H\r
5 \r
6 #include "../../ICoder.h"\r
7 #include "../../../Windows/Synchronization.h"\r
8 #include "../../../Common/MyCom.h"\r
9 \r
10 class CCrossThreadProgress:\r
11   public ICompressProgressInfo,\r
12   public CMyUnknownImp\r
13 {\r
14 public:\r
15   const UInt64 *InSize;\r
16   const UInt64 *OutSize;\r
17   HRESULT Result;\r
18   NWindows::NSynchronization::CAutoResetEvent ProgressEvent;\r
19   NWindows::NSynchronization::CAutoResetEvent WaitEvent;\r
20 \r
21   HRes Create()\r
22   {\r
23     RINOK(ProgressEvent.CreateIfNotCreated());\r
24     return WaitEvent.CreateIfNotCreated();\r
25   }\r
26   void Init()\r
27   {\r
28     ProgressEvent.Reset();\r
29     WaitEvent.Reset();\r
30   }\r
31 \r
32   MY_UNKNOWN_IMP\r
33 \r
34   STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize);\r
35 };\r
36 \r
37 #endif\r