diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-17 20:58:32 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-19 23:12:55 -0500 |
| commit | d4c76dd11f5a096b4fd3ee9c5efc1f44559ac3da (patch) | |
| tree | 002f0351a05420b3cc1cbca052d4159cfc11706d /src/engine/cache.h | |
| parent | 26151ceeb5c57e3fd0bf73e9c13d8d72b41cce74 (diff) | |
| download | wix-d4c76dd11f5a096b4fd3ee9c5efc1f44559ac3da.tar.gz wix-d4c76dd11f5a096b4fd3ee9c5efc1f44559ac3da.tar.bz2 wix-d4c76dd11f5a096b4fd3ee9c5efc1f44559ac3da.zip | |
Send more progress during cache verification.
Add verifyStep to OnCacheVerifyProgress.
Send OnContainerOrPayloadVerify events only if file existed in cache.
Diffstat (limited to 'src/engine/cache.h')
| -rw-r--r-- | src/engine/cache.h | 74 |
1 files changed, 67 insertions, 7 deletions
diff --git a/src/engine/cache.h b/src/engine/cache.h index cf062a85..cd964649 100644 --- a/src/engine/cache.h +++ b/src/engine/cache.h | |||
| @@ -7,7 +7,48 @@ | |||
| 7 | extern "C" { | 7 | extern "C" { |
| 8 | #endif | 8 | #endif |
| 9 | 9 | ||
| 10 | // structs | 10 | |
| 11 | enum BURN_CACHE_MESSAGE_TYPE | ||
| 12 | { | ||
| 13 | BURN_CACHE_MESSAGE_BEGIN, | ||
| 14 | BURN_CACHE_MESSAGE_SUCCESS, | ||
| 15 | BURN_CACHE_MESSAGE_COMPLETE, | ||
| 16 | }; | ||
| 17 | |||
| 18 | enum BURN_CACHE_STEP | ||
| 19 | { | ||
| 20 | BURN_CACHE_STEP_HASH_TO_SKIP_ACQUIRE, | ||
| 21 | BURN_CACHE_STEP_HASH_TO_SKIP_VERIFY, | ||
| 22 | BURN_CACHE_STEP_STAGE, | ||
| 23 | BURN_CACHE_STEP_HASH, | ||
| 24 | BURN_CACHE_STEP_FINALIZE, | ||
| 25 | }; | ||
| 26 | |||
| 27 | typedef struct _BURN_CACHE_MESSAGE | ||
| 28 | { | ||
| 29 | BURN_CACHE_MESSAGE_TYPE type; | ||
| 30 | |||
| 31 | union | ||
| 32 | { | ||
| 33 | struct | ||
| 34 | { | ||
| 35 | BURN_CACHE_STEP cacheStep; | ||
| 36 | } begin; | ||
| 37 | struct | ||
| 38 | { | ||
| 39 | DWORD64 qwFileSize; | ||
| 40 | } success; | ||
| 41 | struct | ||
| 42 | { | ||
| 43 | HRESULT hrStatus; | ||
| 44 | } complete; | ||
| 45 | }; | ||
| 46 | } BURN_CACHE_MESSAGE; | ||
| 47 | |||
| 48 | typedef HRESULT(CALLBACK* PFN_BURNCACHEMESSAGEHANDLER)( | ||
| 49 | __in BURN_CACHE_MESSAGE* pMessage, | ||
| 50 | __in LPVOID pvContext | ||
| 51 | ); | ||
| 11 | 52 | ||
| 12 | // functions | 53 | // functions |
| 13 | 54 | ||
| @@ -95,7 +136,11 @@ HRESULT CacheBundleToWorkingDirectory( | |||
| 95 | HRESULT CacheLayoutBundle( | 136 | HRESULT CacheLayoutBundle( |
| 96 | __in_z LPCWSTR wzExecutableName, | 137 | __in_z LPCWSTR wzExecutableName, |
| 97 | __in_z LPCWSTR wzLayoutDirectory, | 138 | __in_z LPCWSTR wzLayoutDirectory, |
| 98 | __in_z LPCWSTR wzSourceBundlePath | 139 | __in_z LPCWSTR wzSourceBundlePath, |
| 140 | __in DWORD64 qwBundleSize, | ||
| 141 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 142 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 143 | __in LPVOID pContext | ||
| 99 | ); | 144 | ); |
| 100 | HRESULT CacheCompleteBundle( | 145 | HRESULT CacheCompleteBundle( |
| 101 | __in BOOL fPerMachine, | 146 | __in BOOL fPerMachine, |
| @@ -110,28 +155,43 @@ HRESULT CacheLayoutContainer( | |||
| 110 | __in BURN_CONTAINER* pContainer, | 155 | __in BURN_CONTAINER* pContainer, |
| 111 | __in_z_opt LPCWSTR wzLayoutDirectory, | 156 | __in_z_opt LPCWSTR wzLayoutDirectory, |
| 112 | __in_z LPCWSTR wzUnverifiedContainerPath, | 157 | __in_z LPCWSTR wzUnverifiedContainerPath, |
| 113 | __in BOOL fMove | 158 | __in BOOL fMove, |
| 159 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 160 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 161 | __in LPVOID pContext | ||
| 114 | ); | 162 | ); |
| 115 | HRESULT CacheLayoutPayload( | 163 | HRESULT CacheLayoutPayload( |
| 116 | __in BURN_PAYLOAD* pPayload, | 164 | __in BURN_PAYLOAD* pPayload, |
| 117 | __in_z_opt LPCWSTR wzLayoutDirectory, | 165 | __in_z_opt LPCWSTR wzLayoutDirectory, |
| 118 | __in_z LPCWSTR wzUnverifiedPayloadPath, | 166 | __in_z LPCWSTR wzUnverifiedPayloadPath, |
| 119 | __in BOOL fMove | 167 | __in BOOL fMove, |
| 168 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 169 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 170 | __in LPVOID pContext | ||
| 120 | ); | 171 | ); |
| 121 | HRESULT CacheCompletePayload( | 172 | HRESULT CacheCompletePayload( |
| 122 | __in BOOL fPerMachine, | 173 | __in BOOL fPerMachine, |
| 123 | __in BURN_PAYLOAD* pPayload, | 174 | __in BURN_PAYLOAD* pPayload, |
| 124 | __in_z LPCWSTR wzCacheId, | 175 | __in_z LPCWSTR wzCacheId, |
| 125 | __in_z LPCWSTR wzUnverifiedPayloadPath, | 176 | __in_z LPCWSTR wzUnverifiedPayloadPath, |
| 126 | __in BOOL fMove | 177 | __in BOOL fMove, |
| 178 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 179 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 180 | __in LPVOID pContext | ||
| 127 | ); | 181 | ); |
| 128 | HRESULT CacheVerifyContainer( | 182 | HRESULT CacheVerifyContainer( |
| 129 | __in BURN_CONTAINER* pContainer, | 183 | __in BURN_CONTAINER* pContainer, |
| 130 | __in_z LPCWSTR wzCachedDirectory | 184 | __in_z LPCWSTR wzCachedDirectory, |
| 185 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 186 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 187 | __in LPVOID pContext | ||
| 131 | ); | 188 | ); |
| 132 | HRESULT CacheVerifyPayload( | 189 | HRESULT CacheVerifyPayload( |
| 133 | __in BURN_PAYLOAD* pPayload, | 190 | __in BURN_PAYLOAD* pPayload, |
| 134 | __in_z LPCWSTR wzCachedDirectory | 191 | __in_z LPCWSTR wzCachedDirectory, |
| 192 | __in PFN_BURNCACHEMESSAGEHANDLER pfnCacheMessageHandler, | ||
| 193 | __in LPPROGRESS_ROUTINE pfnProgress, | ||
| 194 | __in LPVOID pContext | ||
| 135 | ); | 195 | ); |
| 136 | HRESULT CacheRemoveWorkingFolder( | 196 | HRESULT CacheRemoveWorkingFolder( |
| 137 | __in_z_opt LPCWSTR wzBundleId | 197 | __in_z_opt LPCWSTR wzBundleId |
