diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-11-15 21:38:57 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-11-17 19:06:00 -0600 |
| commit | e71de85e4ec2899ecd01ac236603cf1dddc4a6c7 (patch) | |
| tree | b1537ce17314dc073a9fd3d7d4925f215990be13 /src/engine/plan.h | |
| parent | 846f5a033d346c1bac51c56d4936cd3118ebea7a (diff) | |
| download | wix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.tar.gz wix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.tar.bz2 wix-e71de85e4ec2899ecd01ac236603cf1dddc4a6c7.zip | |
Use plan to decide when to begin, commit, or rollback MSI transactions
Diffstat (limited to 'src/engine/plan.h')
| -rw-r--r-- | src/engine/plan.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/engine/plan.h b/src/engine/plan.h index 5fddd72f..407c1d48 100644 --- a/src/engine/plan.h +++ b/src/engine/plan.h | |||
| @@ -68,6 +68,8 @@ enum BURN_EXECUTE_ACTION_TYPE | |||
| 68 | BURN_EXECUTE_ACTION_TYPE_ROLLBACK_BOUNDARY, | 68 | BURN_EXECUTE_ACTION_TYPE_ROLLBACK_BOUNDARY, |
| 69 | BURN_EXECUTE_ACTION_TYPE_REGISTRATION, | 69 | BURN_EXECUTE_ACTION_TYPE_REGISTRATION, |
| 70 | BURN_EXECUTE_ACTION_TYPE_COMPATIBLE_PACKAGE, | 70 | BURN_EXECUTE_ACTION_TYPE_COMPATIBLE_PACKAGE, |
| 71 | BURN_EXECUTE_ACTION_TYPE_BEGIN_MSI_TRANSACTION, | ||
| 72 | BURN_EXECUTE_ACTION_TYPE_COMMIT_MSI_TRANSACTION, | ||
| 71 | }; | 73 | }; |
| 72 | 74 | ||
| 73 | enum BURN_CLEAN_ACTION_TYPE | 75 | enum BURN_CLEAN_ACTION_TYPE |
| @@ -214,16 +216,19 @@ typedef struct _BURN_ORDERED_PATCHES | |||
| 214 | BURN_PACKAGE* pPackage; | 216 | BURN_PACKAGE* pPackage; |
| 215 | } BURN_ORDERED_PATCHES; | 217 | } BURN_ORDERED_PATCHES; |
| 216 | 218 | ||
| 219 | typedef struct _BURN_EXECUTE_ACTION_CHECKPOINT | ||
| 220 | { | ||
| 221 | DWORD dwId; | ||
| 222 | BURN_ROLLBACK_BOUNDARY* pActiveRollbackBoundary; | ||
| 223 | } BURN_EXECUTE_ACTION_CHECKPOINT; | ||
| 224 | |||
| 217 | typedef struct _BURN_EXECUTE_ACTION | 225 | typedef struct _BURN_EXECUTE_ACTION |
| 218 | { | 226 | { |
| 219 | BURN_EXECUTE_ACTION_TYPE type; | 227 | BURN_EXECUTE_ACTION_TYPE type; |
| 220 | BOOL fDeleted; // used to skip an action after it was planned since deleting actions out of the plan is too hard. | 228 | BOOL fDeleted; // used to skip an action after it was planned since deleting actions out of the plan is too hard. |
| 221 | union | 229 | union |
| 222 | { | 230 | { |
| 223 | struct | 231 | BURN_EXECUTE_ACTION_CHECKPOINT checkpoint; |
| 224 | { | ||
| 225 | DWORD dwId; | ||
| 226 | } checkpoint; | ||
| 227 | struct | 232 | struct |
| 228 | { | 233 | { |
| 229 | HANDLE hEvent; | 234 | HANDLE hEvent; |
| @@ -307,6 +312,10 @@ typedef struct _BURN_EXECUTE_ACTION | |||
| 307 | LPWSTR sczInstalledProductCode; | 312 | LPWSTR sczInstalledProductCode; |
| 308 | VERUTIL_VERSION* pInstalledVersion; | 313 | VERUTIL_VERSION* pInstalledVersion; |
| 309 | } compatiblePackage; | 314 | } compatiblePackage; |
| 315 | struct | ||
| 316 | { | ||
| 317 | BURN_ROLLBACK_BOUNDARY* pRollbackBoundary; | ||
| 318 | } msiTransaction; | ||
| 310 | }; | 319 | }; |
| 311 | } BURN_EXECUTE_ACTION; | 320 | } BURN_EXECUTE_ACTION; |
| 312 | 321 | ||
| @@ -368,7 +377,8 @@ typedef struct _BURN_PLAN | |||
| 368 | DWORD cPayloadProgress; | 377 | DWORD cPayloadProgress; |
| 369 | STRINGDICT_HANDLE shPayloadProgress; | 378 | STRINGDICT_HANDLE shPayloadProgress; |
| 370 | 379 | ||
| 371 | DWORD dwNextCheckpointId; | 380 | DWORD dwNextCheckpointId; // for plan internal use |
| 381 | BURN_ROLLBACK_BOUNDARY* pActiveRollbackBoundary; // for plan internal use | ||
| 372 | } BURN_PLAN; | 382 | } BURN_PLAN; |
| 373 | 383 | ||
| 374 | 384 | ||
