1 // UpdateProduce.h
2 
3 #ifndef __UPDATE_PRODUCE_H
4 #define __UPDATE_PRODUCE_H
5 
6 #include "UpdatePair.h"
7 
8 struct CUpdatePair2
9 {
10   bool NewData;
11   bool NewProps;
12   bool IsAnti;
13 
14   int DirIndex;
15   int ArcIndex;
16   int NewNameIndex;
17 
ExistOnDiskCUpdatePair218   bool ExistOnDisk() const { return DirIndex != -1; }
ExistInArchiveCUpdatePair219   bool ExistInArchive() const { return ArcIndex != -1; }
20 
CUpdatePair2CUpdatePair221   CUpdatePair2(): IsAnti(false), DirIndex(-1), ArcIndex(-1), NewNameIndex(-1) {}
22 };
23 
24 struct IUpdateProduceCallback
25 {
26   virtual HRESULT ShowDeleteFile(int arcIndex) = 0;
27 };
28 
29 void UpdateProduce(
30     const CRecordVector<CUpdatePair> &updatePairs,
31     const NUpdateArchive::CActionSet &actionSet,
32     CRecordVector<CUpdatePair2> &operationChain,
33     IUpdateProduceCallback *callback);
34 
35 #endif
36