diff options
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 |