aboutsummaryrefslogtreecommitdiff
path: root/src/engine/cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/cache.h')
-rw-r--r--src/engine/cache.h74
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 @@
7extern "C" { 7extern "C" {
8#endif 8#endif
9 9
10// structs 10
11enum BURN_CACHE_MESSAGE_TYPE
12{
13 BURN_CACHE_MESSAGE_BEGIN,
14 BURN_CACHE_MESSAGE_SUCCESS,
15 BURN_CACHE_MESSAGE_COMPLETE,
16};
17
18enum 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
27typedef 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
48typedef 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(
95HRESULT CacheLayoutBundle( 136HRESULT 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 );
100HRESULT CacheCompleteBundle( 145HRESULT 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 );
115HRESULT CacheLayoutPayload( 163HRESULT 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 );
121HRESULT CacheCompletePayload( 172HRESULT 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 );
128HRESULT CacheVerifyContainer( 182HRESULT 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 );
132HRESULT CacheVerifyPayload( 189HRESULT 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 );
136HRESULT CacheRemoveWorkingFolder( 196HRESULT CacheRemoveWorkingFolder(
137 __in_z_opt LPCWSTR wzBundleId 197 __in_z_opt LPCWSTR wzBundleId