summaryrefslogtreecommitdiff
path: root/src/burn/engine/dependency.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/dependency.h')
-rw-r--r--src/burn/engine/dependency.h168
1 files changed, 168 insertions, 0 deletions
diff --git a/src/burn/engine/dependency.h b/src/burn/engine/dependency.h
new file mode 100644
index 00000000..06a01a20
--- /dev/null
+++ b/src/burn/engine/dependency.h
@@ -0,0 +1,168 @@
1#pragma once
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3
4
5#if defined(__cplusplus)
6extern "C" {
7#endif
8
9// constants
10
11const LPCWSTR DEPENDENCY_IGNOREDEPENDENCIES = L"IGNOREDEPENDENCIES";
12
13
14// function declarations
15
16/********************************************************************
17 DependencyUninitializeProvider - Frees and zeros memory allocated in
18 the dependency provider.
19
20*********************************************************************/
21void DependencyUninitializeProvider(
22 __in BURN_DEPENDENCY_PROVIDER* pProvider
23 );
24
25/********************************************************************
26 DependencyParseProvidersFromXml - Parses dependency information
27 from the manifest for the specified package.
28
29*********************************************************************/
30HRESULT DependencyParseProvidersFromXml(
31 __in BURN_PACKAGE* pPackage,
32 __in IXMLDOMNode* pixnPackage
33 );
34
35HRESULT DependencyInitialize(
36 __in BURN_REGISTRATION* pRegistration,
37 __in_z_opt LPCWSTR wzIgnoreDependencies
38 );
39
40/********************************************************************
41 DependencyDetectProviderKeyBundleId - Detect if the provider key is
42 registered and if so what bundle is registered.
43
44 Note: Returns E_NOTFOUND if the provider key is not registered.
45*********************************************************************/
46HRESULT DependencyDetectProviderKeyBundleId(
47 __in BURN_REGISTRATION* pRegistration
48 );
49
50/********************************************************************
51 DependencyDetect - Detects dependency information.
52
53*********************************************************************/
54HRESULT DependencyDetect(
55 __in BURN_ENGINE_STATE* pEngineState
56 );
57
58/********************************************************************
59 DependencyPlanInitialize - Initializes the plan.
60
61*********************************************************************/
62HRESULT DependencyPlanInitialize(
63 __in const BURN_REGISTRATION* pRegistration,
64 __in BURN_PLAN* pPlan
65 );
66
67/********************************************************************
68 DependencyAllocIgnoreDependencies - Allocates the dependencies to
69 ignore as a semicolon-delimited string.
70
71*********************************************************************/
72HRESULT DependencyAllocIgnoreDependencies(
73 __in const BURN_PLAN *pPlan,
74 __out_z LPWSTR* psczIgnoreDependencies
75 );
76
77/********************************************************************
78 DependencyAddIgnoreDependencies - Populates the ignore dependency
79 names.
80
81*********************************************************************/
82HRESULT DependencyAddIgnoreDependencies(
83 __in STRINGDICT_HANDLE sdIgnoreDependencies,
84 __in_z LPCWSTR wzAddIgnoreDependencies
85 );
86
87/********************************************************************
88 DependencyPlanPackageBegin - Updates the dependency registration
89 action depending on the calculated state for the package.
90
91*********************************************************************/
92HRESULT DependencyPlanPackageBegin(
93 __in BOOL fPerMachine,
94 __in BURN_PACKAGE* pPackage,
95 __in BURN_PLAN* pPlan
96 );
97
98/********************************************************************
99 DependencyPlanPackage - adds dependency related actions to the plan
100 for this package.
101
102*********************************************************************/
103HRESULT DependencyPlanPackage(
104 __in_opt DWORD *pdwInsertSequence,
105 __in const BURN_PACKAGE* pPackage,
106 __in BURN_PLAN* pPlan
107 );
108
109/********************************************************************
110 DependencyPlanPackageComplete - Updates the dependency registration
111 action depending on the planned action for the package.
112
113*********************************************************************/
114HRESULT DependencyPlanPackageComplete(
115 __in BURN_PACKAGE* pPackage,
116 __in BURN_PLAN* pPlan
117 );
118
119/********************************************************************
120 DependencyExecutePackageProviderAction - Registers or unregisters
121 provider information for the package contained within the action.
122
123*********************************************************************/
124HRESULT DependencyExecutePackageProviderAction(
125 __in const BURN_EXECUTE_ACTION* pAction
126 );
127
128/********************************************************************
129 DependencyExecutePackageDependencyAction - Registers or unregisters
130 dependency information for the package contained within the action.
131
132*********************************************************************/
133HRESULT DependencyExecutePackageDependencyAction(
134 __in BOOL fPerMachine,
135 __in const BURN_EXECUTE_ACTION* pAction
136 );
137
138/********************************************************************
139 DependencyRegisterBundle - Registers the bundle dependency provider.
140
141*********************************************************************/
142HRESULT DependencyRegisterBundle(
143 __in const BURN_REGISTRATION* pRegistration
144 );
145
146/********************************************************************
147 DependencyProcessDependentRegistration - Registers or unregisters dependents
148 on the bundle based on the action.
149
150*********************************************************************/
151HRESULT DependencyProcessDependentRegistration(
152 __in const BURN_REGISTRATION* pRegistration,
153 __in const BURN_DEPENDENT_REGISTRATION_ACTION* pAction
154 );
155
156/********************************************************************
157 DependencyUnregisterBundle - Removes the bundle dependency provider.
158
159 Note: Does not check for existing dependents before removing the key.
160*********************************************************************/
161void DependencyUnregisterBundle(
162 __in const BURN_REGISTRATION* pRegistration,
163 __in const BURN_PACKAGES* pPackages
164 );
165
166#if defined(__cplusplus)
167}
168#endif