diff options
Diffstat (limited to 'src/burn/engine/cache.h')
-rw-r--r-- | src/burn/engine/cache.h | 57 |
1 files changed, 47 insertions, 10 deletions
diff --git a/src/burn/engine/cache.h b/src/burn/engine/cache.h index dfb4f69f..69d82639 100644 --- a/src/burn/engine/cache.h +++ b/src/burn/engine/cache.h | |||
@@ -24,6 +24,24 @@ enum BURN_CACHE_STEP | |||
24 | BURN_CACHE_STEP_FINALIZE, | 24 | BURN_CACHE_STEP_FINALIZE, |
25 | }; | 25 | }; |
26 | 26 | ||
27 | typedef struct _BURN_CACHE | ||
28 | { | ||
29 | BOOL fInitializedCache; | ||
30 | BOOL fPerMachineCacheRootVerified; | ||
31 | BOOL fOriginalPerMachineCacheRootVerified; | ||
32 | BOOL fUnverifiedCacheFolderCreated; | ||
33 | BOOL fCustomMachinePackageCache; | ||
34 | LPWSTR sczDefaultUserPackageCache; | ||
35 | LPWSTR sczDefaultMachinePackageCache; | ||
36 | LPWSTR sczCurrentMachinePackageCache; | ||
37 | |||
38 | // Only valid after CacheInitializeSources | ||
39 | BOOL fInitializedCacheSources; | ||
40 | BOOL fRunningFromCache; | ||
41 | LPWSTR sczSourceProcessFolder; | ||
42 | LPWSTR sczWorkingFolder; | ||
43 | } BURN_CACHE; | ||
44 | |||
27 | typedef struct _BURN_CACHE_MESSAGE | 45 | typedef struct _BURN_CACHE_MESSAGE |
28 | { | 46 | { |
29 | BURN_CACHE_MESSAGE_TYPE type; | 47 | BURN_CACHE_MESSAGE_TYPE type; |
@@ -53,38 +71,46 @@ typedef HRESULT(CALLBACK* PFN_BURNCACHEMESSAGEHANDLER)( | |||
53 | // functions | 71 | // functions |
54 | 72 | ||
55 | HRESULT CacheInitialize( | 73 | HRESULT CacheInitialize( |
74 | __in BURN_CACHE* pCache, | ||
75 | __in BURN_ENGINE_COMMAND* pInternalCommand | ||
76 | ); | ||
77 | HRESULT CacheInitializeSources( | ||
78 | __in BURN_CACHE* pCache, | ||
56 | __in BURN_REGISTRATION* pRegistration, | 79 | __in BURN_REGISTRATION* pRegistration, |
57 | __in BURN_VARIABLES* pVariables, | 80 | __in BURN_VARIABLES* pVariables, |
58 | __in_z_opt LPCWSTR wzSourceProcessPath | 81 | __in BURN_ENGINE_COMMAND* pInternalCommand |
59 | ); | 82 | ); |
60 | HRESULT CacheEnsureWorkingFolder( | 83 | HRESULT CacheEnsureWorkingFolder( |
61 | __in_z_opt LPCWSTR wzBundleId, | 84 | __in BURN_CACHE* pCache, |
62 | __deref_out_z_opt LPWSTR* psczWorkingFolder | 85 | __deref_out_z_opt LPWSTR* psczWorkingFolder |
63 | ); | 86 | ); |
64 | HRESULT CacheCalculateBundleWorkingPath( | 87 | HRESULT CacheCalculateBundleWorkingPath( |
65 | __in_z LPCWSTR wzBundleId, | 88 | __in BURN_CACHE* pCache, |
66 | __in LPCWSTR wzExecutableName, | 89 | __in LPCWSTR wzExecutableName, |
67 | __deref_out_z LPWSTR* psczWorkingPath | 90 | __deref_out_z LPWSTR* psczWorkingPath |
68 | ); | 91 | ); |
69 | HRESULT CacheCalculateBundleLayoutWorkingPath( | 92 | HRESULT CacheCalculateBundleLayoutWorkingPath( |
93 | __in BURN_CACHE* pCache, | ||
70 | __in_z LPCWSTR wzBundleId, | 94 | __in_z LPCWSTR wzBundleId, |
71 | __deref_out_z LPWSTR* psczWorkingPath | 95 | __deref_out_z LPWSTR* psczWorkingPath |
72 | ); | 96 | ); |
73 | HRESULT CacheCalculatePayloadWorkingPath( | 97 | HRESULT CacheCalculatePayloadWorkingPath( |
74 | __in_z LPCWSTR wzBundleId, | 98 | __in BURN_CACHE* pCache, |
75 | __in BURN_PAYLOAD* pPayload, | 99 | __in BURN_PAYLOAD* pPayload, |
76 | __deref_out_z LPWSTR* psczWorkingPath | 100 | __deref_out_z LPWSTR* psczWorkingPath |
77 | ); | 101 | ); |
78 | HRESULT CacheCalculateContainerWorkingPath( | 102 | HRESULT CacheCalculateContainerWorkingPath( |
79 | __in_z LPCWSTR wzBundleId, | 103 | __in BURN_CACHE* pCache, |
80 | __in BURN_CONTAINER* pContainer, | 104 | __in BURN_CONTAINER* pContainer, |
81 | __deref_out_z LPWSTR* psczWorkingPath | 105 | __deref_out_z LPWSTR* psczWorkingPath |
82 | ); | 106 | ); |
83 | HRESULT CacheGetPerMachineRootCompletedPath( | 107 | HRESULT CacheGetPerMachineRootCompletedPath( |
108 | __in BURN_CACHE* pCache, | ||
84 | __out_z LPWSTR* psczCurrentRootCompletedPath, | 109 | __out_z LPWSTR* psczCurrentRootCompletedPath, |
85 | __out_z LPWSTR* psczDefaultRootCompletedPath | 110 | __out_z LPWSTR* psczDefaultRootCompletedPath |
86 | ); | 111 | ); |
87 | HRESULT CacheGetCompletedPath( | 112 | HRESULT CacheGetCompletedPath( |
113 | __in BURN_CACHE* pCache, | ||
88 | __in BOOL fPerMachine, | 114 | __in BOOL fPerMachine, |
89 | __in_z LPCWSTR wzCacheId, | 115 | __in_z LPCWSTR wzCacheId, |
90 | __deref_out_z LPWSTR* psczCompletedPath | 116 | __deref_out_z LPWSTR* psczCompletedPath |
@@ -98,6 +124,7 @@ HRESULT CacheGetLocalSourcePaths( | |||
98 | __in_z LPCWSTR wzSourcePath, | 124 | __in_z LPCWSTR wzSourcePath, |
99 | __in_z LPCWSTR wzDestinationPath, | 125 | __in_z LPCWSTR wzDestinationPath, |
100 | __in_z_opt LPCWSTR wzLayoutDirectory, | 126 | __in_z_opt LPCWSTR wzLayoutDirectory, |
127 | __in BURN_CACHE* pCache, | ||
101 | __in BURN_VARIABLES* pVariables, | 128 | __in BURN_VARIABLES* pVariables, |
102 | __inout LPWSTR** prgSearchPaths, | 129 | __inout LPWSTR** prgSearchPaths, |
103 | __out DWORD* pcSearchPaths, | 130 | __out DWORD* pcSearchPaths, |
@@ -121,16 +148,20 @@ void CacheSendErrorCallback( | |||
121 | __in_z_opt LPCWSTR wzError, | 148 | __in_z_opt LPCWSTR wzError, |
122 | __out_opt BOOL* pfRetry | 149 | __out_opt BOOL* pfRetry |
123 | ); | 150 | ); |
124 | BOOL CacheBundleRunningFromCache(); | 151 | BOOL CacheBundleRunningFromCache( |
152 | __in BURN_CACHE* pCache | ||
153 | ); | ||
125 | HRESULT CachePreparePackage( | 154 | HRESULT CachePreparePackage( |
155 | __in BURN_CACHE* pCache, | ||
126 | __in BURN_PACKAGE* pPackage | 156 | __in BURN_PACKAGE* pPackage |
127 | ); | 157 | ); |
128 | HRESULT CacheBundleToCleanRoom( | 158 | HRESULT CacheBundleToCleanRoom( |
159 | __in BURN_CACHE* pCache, | ||
129 | __in BURN_SECTION* pSection, | 160 | __in BURN_SECTION* pSection, |
130 | __deref_out_z_opt LPWSTR* psczCleanRoomBundlePath | 161 | __deref_out_z_opt LPWSTR* psczCleanRoomBundlePath |
131 | ); | 162 | ); |
132 | HRESULT CacheBundleToWorkingDirectory( | 163 | HRESULT CacheBundleToWorkingDirectory( |
133 | __in_z LPCWSTR wzBundleId, | 164 | __in BURN_CACHE* pCache, |
134 | __in_z LPCWSTR wzExecutableName, | 165 | __in_z LPCWSTR wzExecutableName, |
135 | __in BURN_SECTION* pSection, | 166 | __in BURN_SECTION* pSection, |
136 | __deref_out_z_opt LPWSTR* psczEngineWorkingPath | 167 | __deref_out_z_opt LPWSTR* psczEngineWorkingPath |
@@ -145,6 +176,7 @@ HRESULT CacheLayoutBundle( | |||
145 | __in LPVOID pContext | 176 | __in LPVOID pContext |
146 | ); | 177 | ); |
147 | HRESULT CacheCompleteBundle( | 178 | HRESULT CacheCompleteBundle( |
179 | __in BURN_CACHE* pCache, | ||
148 | __in BOOL fPerMachine, | 180 | __in BOOL fPerMachine, |
149 | __in_z LPCWSTR wzExecutableName, | 181 | __in_z LPCWSTR wzExecutableName, |
150 | __in_z LPCWSTR wzBundleId, | 182 | __in_z LPCWSTR wzBundleId, |
@@ -172,6 +204,7 @@ HRESULT CacheLayoutPayload( | |||
172 | __in LPVOID pContext | 204 | __in LPVOID pContext |
173 | ); | 205 | ); |
174 | HRESULT CacheCompletePayload( | 206 | HRESULT CacheCompletePayload( |
207 | __in BURN_CACHE* pCache, | ||
175 | __in BOOL fPerMachine, | 208 | __in BOOL fPerMachine, |
176 | __in BURN_PAYLOAD* pPayload, | 209 | __in BURN_PAYLOAD* pPayload, |
177 | __in_z LPCWSTR wzCacheId, | 210 | __in_z LPCWSTR wzCacheId, |
@@ -196,22 +229,26 @@ HRESULT CacheVerifyPayload( | |||
196 | __in LPVOID pContext | 229 | __in LPVOID pContext |
197 | ); | 230 | ); |
198 | HRESULT CacheRemoveWorkingFolder( | 231 | HRESULT CacheRemoveWorkingFolder( |
199 | __in_z_opt LPCWSTR wzBundleId | 232 | __in BURN_CACHE* pCache |
200 | ); | 233 | ); |
201 | HRESULT CacheRemoveBundle( | 234 | HRESULT CacheRemoveBundle( |
235 | __in BURN_CACHE* pCache, | ||
202 | __in BOOL fPerMachine, | 236 | __in BOOL fPerMachine, |
203 | __in_z LPCWSTR wzPackageId | 237 | __in_z LPCWSTR wzPackageId |
204 | ); | 238 | ); |
205 | HRESULT CacheRemovePackage( | 239 | HRESULT CacheRemovePackage( |
240 | __in BURN_CACHE* pCache, | ||
206 | __in BOOL fPerMachine, | 241 | __in BOOL fPerMachine, |
207 | __in_z LPCWSTR wzPackageId, | 242 | __in_z LPCWSTR wzPackageId, |
208 | __in_z LPCWSTR wzCacheId | 243 | __in_z LPCWSTR wzCacheId |
209 | ); | 244 | ); |
210 | void CacheCleanup( | 245 | void CacheCleanup( |
211 | __in BOOL fPerMachine, | 246 | __in BOOL fPerMachine, |
212 | __in_z LPCWSTR wzBundleId | 247 | __in BURN_CACHE* pCache |
248 | ); | ||
249 | void CacheUninitialize( | ||
250 | __in BURN_CACHE* pCache | ||
213 | ); | 251 | ); |
214 | void CacheUninitialize(); | ||
215 | 252 | ||
216 | #ifdef __cplusplus | 253 | #ifdef __cplusplus |
217 | } | 254 | } |