aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/cache.h')
-rw-r--r--src/burn/engine/cache.h57
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
27typedef 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
27typedef struct _BURN_CACHE_MESSAGE 45typedef 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
55HRESULT CacheInitialize( 73HRESULT CacheInitialize(
74 __in BURN_CACHE* pCache,
75 __in BURN_ENGINE_COMMAND* pInternalCommand
76 );
77HRESULT 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 );
60HRESULT CacheEnsureWorkingFolder( 83HRESULT 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 );
64HRESULT CacheCalculateBundleWorkingPath( 87HRESULT 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 );
69HRESULT CacheCalculateBundleLayoutWorkingPath( 92HRESULT 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 );
73HRESULT CacheCalculatePayloadWorkingPath( 97HRESULT 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 );
78HRESULT CacheCalculateContainerWorkingPath( 102HRESULT 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 );
83HRESULT CacheGetPerMachineRootCompletedPath( 107HRESULT 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 );
87HRESULT CacheGetCompletedPath( 112HRESULT 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 );
124BOOL CacheBundleRunningFromCache(); 151BOOL CacheBundleRunningFromCache(
152 __in BURN_CACHE* pCache
153 );
125HRESULT CachePreparePackage( 154HRESULT CachePreparePackage(
155 __in BURN_CACHE* pCache,
126 __in BURN_PACKAGE* pPackage 156 __in BURN_PACKAGE* pPackage
127 ); 157 );
128HRESULT CacheBundleToCleanRoom( 158HRESULT 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 );
132HRESULT CacheBundleToWorkingDirectory( 163HRESULT 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 );
147HRESULT CacheCompleteBundle( 178HRESULT 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 );
174HRESULT CacheCompletePayload( 206HRESULT 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 );
198HRESULT CacheRemoveWorkingFolder( 231HRESULT CacheRemoveWorkingFolder(
199 __in_z_opt LPCWSTR wzBundleId 232 __in BURN_CACHE* pCache
200 ); 233 );
201HRESULT CacheRemoveBundle( 234HRESULT 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 );
205HRESULT CacheRemovePackage( 239HRESULT 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 );
210void CacheCleanup( 245void CacheCleanup(
211 __in BOOL fPerMachine, 246 __in BOOL fPerMachine,
212 __in_z LPCWSTR wzBundleId 247 __in BURN_CACHE* pCache
248 );
249void CacheUninitialize(
250 __in BURN_CACHE* pCache
213 ); 251 );
214void CacheUninitialize();
215 252
216#ifdef __cplusplus 253#ifdef __cplusplus
217} 254}