aboutsummaryrefslogtreecommitdiff
path: root/src/engine/plan.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/plan.h')
-rw-r--r--src/engine/plan.h106
1 files changed, 17 insertions, 89 deletions
diff --git a/src/engine/plan.h b/src/engine/plan.h
index 0024b0aa..4ba2df6a 100644
--- a/src/engine/plan.h
+++ b/src/engine/plan.h
@@ -38,17 +38,10 @@ enum BURN_CACHE_ACTION_TYPE
38 BURN_CACHE_ACTION_TYPE_NONE, 38 BURN_CACHE_ACTION_TYPE_NONE,
39 BURN_CACHE_ACTION_TYPE_CHECKPOINT, 39 BURN_CACHE_ACTION_TYPE_CHECKPOINT,
40 BURN_CACHE_ACTION_TYPE_LAYOUT_BUNDLE, 40 BURN_CACHE_ACTION_TYPE_LAYOUT_BUNDLE,
41 BURN_CACHE_ACTION_TYPE_PACKAGE_START, 41 BURN_CACHE_ACTION_TYPE_PACKAGE,
42 BURN_CACHE_ACTION_TYPE_PACKAGE_STOP,
43 BURN_CACHE_ACTION_TYPE_ROLLBACK_PACKAGE, 42 BURN_CACHE_ACTION_TYPE_ROLLBACK_PACKAGE,
44 BURN_CACHE_ACTION_TYPE_SIGNAL_SYNCPOINT, 43 BURN_CACHE_ACTION_TYPE_SIGNAL_SYNCPOINT,
45 BURN_CACHE_ACTION_TYPE_ACQUIRE_CONTAINER, 44 BURN_CACHE_ACTION_TYPE_CONTAINER,
46 BURN_CACHE_ACTION_TYPE_EXTRACT_CONTAINER,
47 BURN_CACHE_ACTION_TYPE_LAYOUT_CONTAINER,
48 BURN_CACHE_ACTION_TYPE_ACQUIRE_PAYLOAD,
49 BURN_CACHE_ACTION_TYPE_CACHE_PAYLOAD,
50 BURN_CACHE_ACTION_TYPE_LAYOUT_PAYLOAD,
51 BURN_CACHE_ACTION_TYPE_TRANSACTION_BOUNDARY,
52}; 45};
53 46
54enum BURN_EXECUTE_ACTION_TYPE 47enum BURN_EXECUTE_ACTION_TYPE
@@ -78,13 +71,6 @@ enum BURN_CLEAN_ACTION_TYPE
78 71
79// structs 72// structs
80 73
81typedef struct _BURN_EXTRACT_PAYLOAD
82{
83 BURN_PACKAGE* pPackage;
84 BURN_PAYLOAD* pPayload;
85 LPWSTR sczUnverifiedPath;
86} BURN_EXTRACT_PAYLOAD;
87
88typedef struct _BURN_DEPENDENT_REGISTRATION_ACTION 74typedef struct _BURN_DEPENDENT_REGISTRATION_ACTION
89{ 75{
90 BURN_DEPENDENT_REGISTRATION_ACTION_TYPE type; 76 BURN_DEPENDENT_REGISTRATION_ACTION_TYPE type;
@@ -111,7 +97,6 @@ typedef struct _BURN_CACHE_PAYLOAD_PROGRESS
111typedef struct _BURN_CACHE_ACTION 97typedef struct _BURN_CACHE_ACTION
112{ 98{
113 BURN_CACHE_ACTION_TYPE type; 99 BURN_CACHE_ACTION_TYPE type;
114 BOOL fSkipUntilRetried;
115 union 100 union
116 { 101 {
117 struct 102 struct
@@ -121,21 +106,14 @@ typedef struct _BURN_CACHE_ACTION
121 struct 106 struct
122 { 107 {
123 LPWSTR sczExecutableName; 108 LPWSTR sczExecutableName;
124 LPWSTR sczLayoutDirectory;
125 LPWSTR sczUnverifiedPath; 109 LPWSTR sczUnverifiedPath;
126 DWORD64 qwBundleSize; 110 DWORD64 qwBundleSize;
111 BURN_PAYLOAD_GROUP* pPayloadGroup;
127 } bundleLayout; 112 } bundleLayout;
128 struct 113 struct
129 { 114 {
130 BURN_PACKAGE* pPackage; 115 BURN_PACKAGE* pPackage;
131 DWORD cCachePayloads; 116 } package;
132 DWORD64 qwCachePayloadSizeTotal;
133 DWORD iPackageCompleteAction;
134 } packageStart;
135 struct
136 {
137 BURN_PACKAGE* pPackage;
138 } packageStop;
139 struct 117 struct
140 { 118 {
141 BURN_PACKAGE* pPackage; 119 BURN_PACKAGE* pPackage;
@@ -147,62 +125,7 @@ typedef struct _BURN_CACHE_ACTION
147 struct 125 struct
148 { 126 {
149 BURN_CONTAINER* pContainer; 127 BURN_CONTAINER* pContainer;
150 DWORD iProgress; 128 } container;
151 LPWSTR sczUnverifiedPath;
152 } resolveContainer;
153 struct
154 {
155 BURN_CONTAINER* pContainer;
156 DWORD iSkipUntilAcquiredByAction;
157 LPWSTR sczContainerUnverifiedPath;
158
159 BURN_EXTRACT_PAYLOAD* rgPayloads;
160 DWORD cPayloads;
161 } extractContainer;
162 struct
163 {
164 BURN_PACKAGE* pPackage;
165 BURN_CONTAINER* pContainer;
166 DWORD iProgress;
167 DWORD iTryAgainAction;
168 DWORD cTryAgainAttempts;
169 LPWSTR sczLayoutDirectory;
170 LPWSTR sczUnverifiedPath;
171 BOOL fMove;
172 } layoutContainer;
173 struct
174 {
175 BURN_PACKAGE* pPackage;
176 BURN_PAYLOAD* pPayload;
177 DWORD iProgress;
178 LPWSTR sczUnverifiedPath;
179 } resolvePayload;
180 struct
181 {
182 BURN_PACKAGE* pPackage;
183 BURN_PAYLOAD* pPayload;
184 DWORD iProgress;
185 DWORD iTryAgainAction;
186 DWORD cTryAgainAttempts;
187 LPWSTR sczUnverifiedPath;
188 BOOL fMove;
189 } cachePayload;
190 struct
191 {
192 BURN_PACKAGE* pPackage;
193 BURN_PAYLOAD* pPayload;
194 DWORD iProgress;
195 DWORD iTryAgainAction;
196 DWORD cTryAgainAttempts;
197 LPWSTR sczLayoutDirectory;
198 LPWSTR sczUnverifiedPath;
199 BOOL fMove;
200 } layoutPayload;
201 struct
202 {
203 BURN_ROLLBACK_BOUNDARY* pRollbackBoundary;
204 HANDLE hEvent;
205 } rollbackBoundary;
206 }; 129 };
207} BURN_CACHE_ACTION; 130} BURN_CACHE_ACTION;
208 131
@@ -306,6 +229,7 @@ typedef struct _BURN_CLEAN_ACTION
306typedef struct _BURN_PLAN 229typedef struct _BURN_PLAN
307{ 230{
308 BOOTSTRAPPER_ACTION action; 231 BOOTSTRAPPER_ACTION action;
232 BURN_PAYLOADS* pPayloads; // points directly into parent the ENGINE_STATE.
309 LPWSTR wzBundleId; // points directly into parent the ENGINE_STATE. 233 LPWSTR wzBundleId; // points directly into parent the ENGINE_STATE.
310 LPWSTR wzBundleProviderKey; // points directly into parent the ENGINE_STATE. 234 LPWSTR wzBundleProviderKey; // points directly into parent the ENGINE_STATE.
311 BOOL fPerMachine; 235 BOOL fPerMachine;
@@ -315,6 +239,7 @@ typedef struct _BURN_PLAN
315 BOOL fDisableRollback; 239 BOOL fDisableRollback;
316 BOOL fAffectedMachineState; 240 BOOL fAffectedMachineState;
317 BOOL fIgnoreAllDependents; 241 BOOL fIgnoreAllDependents;
242 LPWSTR sczLayoutDirectory;
318 243
319 DWORD64 qwCacheSizeTotal; 244 DWORD64 qwCacheSizeTotal;
320 245
@@ -369,7 +294,9 @@ typedef struct _BURN_PLAN
369 294
370void PlanReset( 295void PlanReset(
371 __in BURN_PLAN* pPlan, 296 __in BURN_PLAN* pPlan,
372 __in BURN_PACKAGES* pPackages 297 __in BURN_CONTAINERS* pContainers,
298 __in BURN_PACKAGES* pPackages,
299 __in BURN_PAYLOAD_GROUP* pLayoutPayloads
373 ); 300 );
374void PlanUninitializeExecuteAction( 301void PlanUninitializeExecuteAction(
375 __in BURN_EXECUTE_ACTION* pExecuteAction 302 __in BURN_EXECUTE_ACTION* pExecuteAction
@@ -393,8 +320,7 @@ HRESULT PlanLayoutBundle(
393 __in_z LPCWSTR wzExecutableName, 320 __in_z LPCWSTR wzExecutableName,
394 __in DWORD64 qwBundleSize, 321 __in DWORD64 qwBundleSize,
395 __in BURN_VARIABLES* pVariables, 322 __in BURN_VARIABLES* pVariables,
396 __in BURN_PAYLOADS* pPayloads, 323 __in BURN_PAYLOAD_GROUP* pLayoutPayloads
397 __out_z LPWSTR* psczLayoutDirectory
398 ); 324 );
399HRESULT PlanForwardCompatibleBundles( 325HRESULT PlanForwardCompatibleBundles(
400 __in BURN_USER_EXPERIENCE* pUX, 326 __in BURN_USER_EXPERIENCE* pUX,
@@ -410,8 +336,7 @@ HRESULT PlanPackages(
410 __in BURN_LOGGING* pLog, 336 __in BURN_LOGGING* pLog,
411 __in BURN_VARIABLES* pVariables, 337 __in BURN_VARIABLES* pVariables,
412 __in BOOTSTRAPPER_DISPLAY display, 338 __in BOOTSTRAPPER_DISPLAY display,
413 __in BOOTSTRAPPER_RELATION_TYPE relationType, 339 __in BOOTSTRAPPER_RELATION_TYPE relationType
414 __in_z_opt LPCWSTR wzLayoutDirectory
415 ); 340 );
416HRESULT PlanRegistration( 341HRESULT PlanRegistration(
417 __in BURN_PLAN* pPlan, 342 __in BURN_PLAN* pPlan,
@@ -438,10 +363,13 @@ HRESULT PlanUpdateBundle(
438 __in BOOTSTRAPPER_DISPLAY display, 363 __in BOOTSTRAPPER_DISPLAY display,
439 __in BOOTSTRAPPER_RELATION_TYPE relationType 364 __in BOOTSTRAPPER_RELATION_TYPE relationType
440 ); 365 );
366HRESULT PlanLayoutContainer(
367 __in BURN_PLAN* pPlan,
368 __in BURN_CONTAINER* pContainer
369 );
441HRESULT PlanLayoutPackage( 370HRESULT PlanLayoutPackage(
442 __in BURN_PLAN* pPlan, 371 __in BURN_PLAN* pPlan,
443 __in BURN_PACKAGE* pPackage, 372 __in BURN_PACKAGE* pPackage
444 __in_z_opt LPCWSTR wzLayoutDirectory
445 ); 373 );
446HRESULT PlanExecutePackage( 374HRESULT PlanExecutePackage(
447 __in BOOL fPerMachine, 375 __in BOOL fPerMachine,