WSF
WsfPProxySatisfy.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFPPROXYSATISFY_HPP
16#define WSFPPROXYSATISFY_HPP
17
19#include "WsfPProxyIndex.hpp"
20#include "WsfPProxyPath.hpp"
21#include "WsfPProxyRegistry.hpp"
23#include "WsfPProxyUndo.hpp"
24#include "WsfPProxyValue.hpp"
25#include "WsfParseNode.hpp"
27
29
31{
32public:
37
38 std::string StringOrdValue(WsfParseNode* aParentNodePtr, size_t aOrd)
39 {
40 WsfParseNode* childPtr = aParentNodePtr->GetChild(aOrd);
41 if (childPtr)
42 {
43 return childPtr->mValue.Text();
44 }
45 return "";
46 }
47 std::string StringEval(WsfParseNode* aParentNodePtr, WsfParseActionPart& aExpr)
48 {
49 switch (aExpr.mActionPartType)
50 {
52 {
54 if (ref->mValueTypePtr)
55 {
56 return StringOrdValue(aParentNodePtr, ref->mIndex);
57 }
58 return StringOrdValue(aParentNodePtr, ref->mIndex);
59 }
60 break;
62 {
64 return lit->mText;
65 }
66 break;
67 default:
68 break;
69 }
70 return "";
71 }
72
74};
75
77{
78public:
85
86 std::set<const WsfPProxyType*> mTypesThatNeedToBeCleared;
87 // Keeps track of proxy values that have been cleared in attempt to satisfy a value
88 // this is for the case of :
89 // platform_type PT ... route x y z end_route
90 // platform P PT ... +route a b c end_route
91 std::set<void*> mAttemptedToClear;
92
94 {
96 // Attempt to satisfy a single attribute (mTargetPath)
98 // The target has been satisfied. Continue operation until rules are completed successfully.
99 // cSM_COMPLETE,
100 // Check existing inputs to make sure they are correct
101 // Prune or replace bad inputs when possible
103 };
104
106
107 bool FixMode() const { return false; }
108
110
111
112 struct SatPoint
113 {
114 public:
115 enum Flags
116 {
118 };
119
121 : trace(nullptr)
122 , flags(0)
123 {
124 }
125 SatPoint(const SatPoint& aSrc)
126 : current(aSrc.current)
127 , desired(aSrc.desired)
129 , trace(aSrc.trace)
130 , flags(aSrc.flags)
131 {
132 }
134 : current(aSrc.current)
135 , desired(aSrc.desired)
137 , trace(aTrace)
138 , flags(aSrc.flags)
139 {
140 }
142 WsfPProxyValue aDesired,
143 WsfPProxyValue aReturnValue,
144 WsfPParseRuleTrace* aTrace,
145 int aFlags = 0)
146 : current(aCurrent)
147 , desired(aDesired)
148 , returnValue(aReturnValue)
149 , trace(aTrace)
150 , flags(aFlags)
151 {
152 }
153
154 bool IsTargetComplete() const { return 0 != (flags & cTARGET_COMPLETE); }
155
156 void SetTargetComplete(bool aIsComplete)
157 {
158 if (aIsComplete)
159 {
161 }
162 else
163 {
165 }
166 }
167
168 // Normally we only recurse if a rule has utility in setting the target value
169 // If this returns true, some previous rule has utility, and we just want to complete a valid trace.
170 // Ex: Here we could choose either end_ token:
171 // antenna_pattern MY_PATTERN { end_antenna_pattern | end_pattern }
172 // Ex: Here we need to choose the type of waypoint correctly, but the 'target' of adding a waypoint has already
173 // been met.
174 // [pushBack(waypoints)] <Waypoint.any>
175 bool NeedToComplete() const { return IsTargetComplete(); }
176
180 // WsfPProxyPath target;
182 int flags;
183 };
184
186
196
198 {
200 : mResult(static_cast<unsigned int>(aResult))
201 {
202 }
207 // True if satisfiable
208 operator bool() const { return 0 != (mResult & cSATISFIABLE); }
209 // True if both satisfiable and adds value
210 bool Success() const { return (cSUCCESS & mResult) == cSUCCESS; }
211
213 // Combine RHS with this
215 {
216 mResult |= aRhs.mResult;
217 return *this;
218 }
219 unsigned int mResult;
220 };
221
222 mutable std::ofstream debugOutput;
223
225 WsfPProxyValue aDesiredRootValue,
226 WsfPProxyUndoValue aCurrentRootValue,
227 WsfPParseRuleTracer* aTracerPtr);
230 bool SatisfyBlock(WsfPParseRuleTraceContext* aContextPtr);
231 bool SatisfyBlock(WsfPParseRuleTraceContext* aContextPtr, WsfPProxyValue aExistingValues);
232 bool SatisfyAttribute(const WsfPProxyPath& aPath);
233
234
236 WsfPParseRuleTraceContext* aContextPtr);
237 bool IsEqual(const WsfPProxyValue& A, const WsfPProxyValue& B);
238
241
242 WsfPProxyUndoValue LookupCurrent(WsfPProxyUndoValue& aCurrent, const WsfParseTypePath& aAddr, bool aRelative);
243
245
247 const WsfPProxyValue& c,
248 const WsfParseActionAddress& aAddr,
249 WsfPProxyPath* aUpdatePath = nullptr);
250
252 const WsfParseActionAddress& aAddr,
253 WsfPProxyPath* aUpdatePath = nullptr)
254 {
255 return Lookup(mDesiredRoot, aDesiredValue, aAddr, aUpdatePath);
256 }
257
258 WsfPProxyValue LookupCurrentOrBasicValue(WsfPProxyUndoValue& aCurrent, const WsfParseTypePath& aAddr, bool aRelative);
259
261 const WsfParseTypePath& aAddr,
262 bool aRelative,
263 WsfPProxyPath* aUpdatePath);
264
265 // An expression in an assignment made by a grammar action
267 {
270 , mValue(v)
271 , mNodeIndex(ut::npos)
272 {
273 }
274 EquationExpr(std::string& aFunc)
276 , mFunction(aFunc)
277 , mNodeIndex(ut::npos)
278 {
279 }
280 EquationExpr(size_t aNodeIndex)
282 , mNodeIndex(aNodeIndex)
283 {
284 }
287 {
288 EquationExpr e;
290 return e;
291 }
293 {
294 // A fixed value
298 // This expression has the value returned by a node.
299 // When an equation is solved, this is a variable
301 };
302 void Cleanup()
303 {
304 mValue.Delete();
305 for (size_t i = 0; i < mParameters.size(); ++i)
306 {
307 mParameters[i].Cleanup();
308 }
309 }
312 std::string mFunction;
314 std::vector<EquationExpr> mParameters;
315 };
316
318 struct Equation
319 {
320 // Index of the action group. 0 indicates before the first sequence subrule.
322 // WsfParseActionAddress mLHS;
325
326 void Cleanup() { mRHS.Cleanup(); }
327 };
328
329 // Builds an equation expression
330 void EquationExpression(WsfParseActionPart* aExprPtr, WsfParseValueType* aLHS_TypePtr, EquationExpr& aExpr);
331
332 EquationExpr EvalExpr(EquationExpr& aExpr);
333
340 bool SolveEquation(const WsfPProxyValue& aLhs, EquationExpr& aRHS, std::vector<WsfPProxyValue*>& aVariables);
341
343 bool SolveEquations(const WsfPProxyValue& aCurrentDesired,
344 // WsfParseActionAddress& aPrefixAddr,
345 std::vector<Equation>& aEquations,
346 std::vector<WsfPProxyValue*>& aVariables);
347
348 // Given a rule sequence and a current and desired value, build the equations
349 // required to solve for input values.
351 WsfPProxyUndoValue& aCurrentValue,
352 const WsfPProxyValue& aDesiredValue,
353 std::vector<Equation>& aEquations,
354 WsfParseNode* aExistingNodePtr,
355 std::vector<WsfPProxyValue*>& aVariables);
356
370
371 int ApplyEquations(size_t aActionSetIndex,
372 size_t& aNextEquation,
373 std::vector<Equation>& aEquations,
374 WsfPProxyUndoValue& aCurrentValue,
375 WsfPProxyValue aDesiredValue);
376
377 // Execute action on aCurrentValue while keeping aNewValue pointing to the same
378 // relative position in the proxy tree.
379 void FollowAction(WsfParseAction* aActionPtr,
380 WsfPParseRuleTrace* aParentTracePtr,
381 // WsfParseNode* aParentNodePtr,
382 WsfPProxyUndoValue& aCurrentValue,
383 WsfPProxyValue* aDesiredValue,
384 WsfPProxyPath& aCurrentPath,
385 // std::vector<WsfPProxyBasicValue>& aCurrentNodeReturns,
386 std::vector<WsfPProxyValue*> aVariables,
387 SatisfyResult& aResult);
388
390
391 // Some parse rules return values instead of operating on the current value.
392 // In this case, we handle these rules as if they operated on the current value by determining
393 // where the return value is assigned.
394 // This method returns true if the assignment address is found.
396 WsfPProxyUndoValue& aCurrentValue,
397 WsfPProxyValue aDesiredValue,
398 // std::vector<WsfPProxyBasicValue>& aReturnValues,
399 WsfParseSequence* aSeq,
400 int aNextSequenceChild,
401 WsfParseActionAddress& aBindAddr);
402
404 WsfPProxyUndoValue& aCurrentValue,
405 WsfPProxyValue aDesiredValue,
406 std::vector<WsfPProxyBasicValue>& aReturnValues,
407 WsfParseSequence* aSeq,
408 size_t aNextSequenceChild,
409 WsfPProxyPath& aBindAddr);
410
412
414
420
421 // SatisfyResult Scan(SatPoint pt);
422 // SatisfyResult ScanRoot(SatPoint pt);
423 // SatisfyResult ScanSequence(SatPoint pt);
424
425
434 bool aIsSaveType,
435 const WsfParseTypeName& aType,
436 WsfPProxyUndoValue& aCurrent,
437 WsfPProxyValue& aDesired,
438 std::string& aObjectName);
439
440 SatisfyResult SatisfyTypeLoad(WsfParseRule* currentRulePtr, SatPoint pt);
441
442 SatisfyResult Satisfy(SatPoint pt);
443
444private:
445 bool SatisfyBlockP(WsfPParseRuleTraceContext* aContextPtr, WsfPProxyValue aExistingValues);
446
447 bool IsAttributeSatisfied(const WsfPProxyPath& aPath);
448
449 std::unique_ptr<WsfPProxyActionLookup> mActionLookupPtr;
450};
451
452
453#endif
std::vector< UtStringRef > WsfParseTypePath
Definition WsfParseTypePath.hpp:21
Definition WsfPProxySatisfy.hpp:31
std::string StringEval(WsfParseNode *aParentNodePtr, WsfParseActionPart &aExpr)
Definition WsfPProxySatisfy.hpp:47
WsfPProxyRegistry * mRegistryPtr
Definition WsfPProxySatisfy.hpp:73
ProxyEvaluator(WsfPProxyRegistry *reg)
Definition WsfPProxySatisfy.hpp:33
std::string StringOrdValue(WsfParseNode *aParentNodePtr, size_t aOrd)
Definition WsfPProxySatisfy.hpp:38
Definition WsfPProxyRuleTrace.hpp:210
Definition WsfPProxyRuleTrace.hpp:73
Definition WsfPProxyRuleTrace.hpp:33
Definition WsfPProxyActionLookup.hpp:32
Definition WsfPProxyBasicValue.hpp:29
Represents a path or unique key to a value in the proxy.
Definition WsfPProxyPath.hpp:64
Definition WsfPProxyRegistry.hpp:37
bool SatisfyAttribute(const WsfPProxyPath &aPath)
Definition WsfPProxySatisfy.cpp:57
TypeLoadLookupResult LookupTypeLoad(WsfParseTypeInfoData::Operation aOperation, bool aIsSaveType, const WsfParseTypeName &aType, WsfPProxyUndoValue &aCurrent, WsfPProxyValue &aDesired, std::string &aObjectName)
Definition WsfPProxySatisfy.cpp:1853
SatisfyResult SatisfyValueRule(WsfPProxyBasicValue aDesiredValue, WsfPParseRuleTrace *aTracePtr)
Definition WsfPProxySatisfy.cpp:1675
std::set< const WsfPProxyType * > mTypesThatNeedToBeCleared
Definition WsfPProxySatisfy.hpp:86
bool SatisfyBlock(WsfPParseRuleTraceContext *aContextPtr)
Definition WsfPProxySatisfy.cpp:2408
WsfPProxyPath mTargetPath
Definition WsfPProxySatisfy.hpp:109
std::ofstream debugOutput
Definition WsfPProxySatisfy.hpp:222
SatisfyResult SatisfyTypeLoad(WsfParseRule *currentRulePtr, SatPoint pt)
Definition WsfPProxySatisfy.cpp:1982
WsfParseNamedRule * GetRuleOutput(WsfParseRule *aRulePtr)
Definition WsfPProxySatisfy.cpp:1174
WsfPProxyValue mDesiredRoot
Definition WsfPProxySatisfy.hpp:79
WsfPProxySatisfy::SatisfyResult SatisfyAttributeInContext(const WsfPProxyPath &aPath, WsfPParseRuleTraceContext *aContextPtr)
Definition WsfPProxySatisfy.cpp:130
SatisfyResult Satisfy(SatPoint pt)
Definition WsfPProxySatisfy.cpp:2082
void EquationExpression(WsfParseActionPart *aExprPtr, WsfParseValueType *aLHS_TypePtr, EquationExpr &aExpr)
Definition WsfPProxySatisfy.cpp:349
bool SolveEquations(const WsfPProxyValue &aCurrentDesired, std::vector< Equation > &aEquations, std::vector< WsfPProxyValue * > &aVariables)
Attempts to solve a set of equations.
Definition WsfPProxySatisfy.cpp:453
EquationExpr EvalExpr(EquationExpr &aExpr)
Definition WsfPProxySatisfy.cpp:392
SatisfyResult SatisfyAlternate(SatPoint pt)
Definition WsfPProxySatisfy.cpp:1567
WsfPProxySatisfy(WsfPProxyRegistry *aRegistryPtr, WsfPProxyValue aDesiredRootValue, WsfPProxyUndoValue aCurrentRootValue, WsfPParseRuleTracer *aTracerPtr)
Definition WsfPProxySatisfy.cpp:35
WsfPParseRuleTracer * mTracerPtr
Definition WsfPProxySatisfy.hpp:83
std::set< void * > mAttemptedToClear
Definition WsfPProxySatisfy.hpp:91
int ApplyEquations(size_t aActionSetIndex, size_t &aNextEquation, std::vector< Equation > &aEquations, WsfPProxyUndoValue &aCurrentValue, WsfPProxyValue aDesiredValue)
Definition WsfPProxySatisfy.cpp:623
WsfPProxyValue LookupBasicValue(const WsfPProxyPath &aPath)
Definition WsfPProxySatisfy.cpp:173
WsfPProxyUndoValue mCurrentRoot
Definition WsfPProxySatisfy.hpp:185
WsfPProxyRegistry * mRegistryPtr
Definition WsfPProxySatisfy.hpp:80
WsfPProxyValue LookupCurrentOrBasicValue(WsfPProxyUndoValue &aCurrent, const WsfParseTypePath &aAddr, bool aRelative)
Definition WsfPProxySatisfy.cpp:211
WsfPProxyUndoValue LookupCurrent(WsfPProxyUndoValue &aCurrent, const WsfParseTypePath &aAddr, bool aRelative)
Definition WsfPProxySatisfy.cpp:189
bool FindBindingAddress2(WsfPParseRuleTrace *aTracePtr, WsfPProxyUndoValue &aCurrentValue, WsfPProxyValue aDesiredValue, std::vector< WsfPProxyBasicValue > &aReturnValues, WsfParseSequence *aSeq, size_t aNextSequenceChild, WsfPProxyPath &aBindAddr)
Definition WsfPProxySatisfy.cpp:1232
SatisfyResultEnum
Definition WsfPProxySatisfy.hpp:188
@ cCHANGED_TARGET
Definition WsfPProxySatisfy.hpp:192
@ cSUCCESS
Definition WsfPProxySatisfy.hpp:193
@ cNOT_SATISFIABLE
Definition WsfPProxySatisfy.hpp:189
@ cSUCCESS_COMPLETE
Definition WsfPProxySatisfy.hpp:194
@ cADDS_VALUE
Definition WsfPProxySatisfy.hpp:191
@ cSATISFIABLE
Definition WsfPProxySatisfy.hpp:190
bool SatisfyRootDifferences()
Definition WsfPProxySatisfy.cpp:2244
void FollowAction(WsfParseAction *aActionPtr, WsfPParseRuleTrace *aParentTracePtr, WsfPProxyUndoValue &aCurrentValue, WsfPProxyValue *aDesiredValue, WsfPProxyPath &aCurrentPath, std::vector< WsfPProxyValue * > aVariables, SatisfyResult &aResult)
Definition WsfPProxySatisfy.cpp:669
bool IsEqual(const WsfPProxyValue &A, const WsfPProxyValue &B)
Definition WsfPProxySatisfy.cpp:166
SatMode
Definition WsfPProxySatisfy.hpp:94
@ cSM_FIX
Definition WsfPProxySatisfy.hpp:102
@ cSM_TARGET
Definition WsfPProxySatisfy.hpp:97
@ cSM_NONE
Definition WsfPProxySatisfy.hpp:95
bool SolveEquation(const WsfPProxyValue &aLhs, EquationExpr &aRHS, std::vector< WsfPProxyValue * > &aVariables)
Definition WsfPProxySatisfy.cpp:402
SatMode mSatMode
Definition WsfPProxySatisfy.hpp:105
bool FindBindingAddress(WsfPParseRuleTrace *aTracePtr, WsfPProxyUndoValue &aCurrentValue, WsfPProxyValue aDesiredValue, WsfParseSequence *aSeq, int aNextSequenceChild, WsfParseActionAddress &aBindAddr)
WsfPProxyValue Lookup(WsfPProxyValue &aRoot, const WsfPProxyValue &c, const WsfParseActionAddress &aAddr, WsfPProxyPath *aUpdatePath=nullptr)
Definition WsfPProxySatisfy.cpp:272
WsfPProxyValue LookupDesired(WsfPProxyValue aDesiredValue, const WsfParseActionAddress &aAddr, WsfPProxyPath *aUpdatePath=nullptr)
Definition WsfPProxySatisfy.hpp:251
SatisfyResult SatisfySequence(SatPoint pt)
Definition WsfPProxySatisfy.cpp:1376
bool BuildSequenceEquations(WsfParseSequence *aSequence, WsfPProxyUndoValue &aCurrentValue, const WsfPProxyValue &aDesiredValue, std::vector< Equation > &aEquations, WsfParseNode *aExistingNodePtr, std::vector< WsfPProxyValue * > &aVariables)
Definition WsfPProxySatisfy.cpp:477
SatisfyResult SatisfyRecurrence(SatPoint pt)
Definition WsfPProxySatisfy.cpp:1735
SatisfyResult SatisfyRoot(SatPoint pt)
Definition WsfPProxySatisfy.cpp:1711
WsfPParseRuleTrace * mTracePtr
Definition WsfPProxySatisfy.hpp:82
~WsfPProxySatisfy()
Definition WsfPProxySatisfy.cpp:53
ProxyEvaluator mEvaluator
Definition WsfPProxySatisfy.hpp:81
bool FixMode() const
Definition WsfPProxySatisfy.hpp:107
TypeLoadLookupResult
Definition WsfPProxySatisfy.hpp:427
@ cTL_FAILURE
Definition WsfPProxySatisfy.hpp:431
@ cTL_SUCCESS
Definition WsfPProxySatisfy.hpp:428
@ cTL_COLLISION
Definition WsfPProxySatisfy.hpp:429
@ cTL_LOADFAIL
Definition WsfPProxySatisfy.hpp:430
bool mRecurrenceInsertBeforeEnd
Definition WsfPProxySatisfy.hpp:84
Definition WsfPProxyUndo.hpp:102
Definition WsfPProxyValue.hpp:33
Definition WsfParseAction.hpp:33
Definition WsfParseAction.hpp:256
std::string mText
Definition WsfParseAction.hpp:266
Definition WsfParseAction.hpp:270
size_t mIndex
Definition WsfParseAction.hpp:281
WsfParseValueType * mValueTypePtr
Definition WsfParseAction.hpp:282
Definition WsfParseAction.hpp:99
ActionPartType mActionPartType
Definition WsfParseAction.hpp:122
@ cLITERAL
Definition WsfParseAction.hpp:107
@ cNODE_REFERENCE
Definition WsfParseAction.hpp:108
Definition WsfParseAction.hpp:329
Definition WsfParseRule.hpp:350
Definition WsfParseNode.hpp:61
WsfParseNode * GetChild(size_t aIndex) const
Definition WsfParseNode.cpp:377
UtTextDocumentRange mValue
Definition WsfParseNode.hpp:154
Definition WsfParseRule.hpp:131
Definition WsfParseSequence.hpp:21
Operation
Definition WsfParseTypeInfoData.hpp:28
Definition WsfParseType.hpp:139
Definition WsfParseRule.hpp:58
Definition WsfSensorErrorModel.hpp:21
Definition WsfPProxySatisfy.hpp:267
void Cleanup()
Definition WsfPProxySatisfy.hpp:302
std::string mFunction
Definition WsfPProxySatisfy.hpp:312
WsfPProxyValue mValue
Definition WsfPProxySatisfy.hpp:311
std::vector< EquationExpr > mParameters
Definition WsfPProxySatisfy.hpp:314
static EquationExpr UnsetValue()
Definition WsfPProxySatisfy.hpp:286
size_t mNodeIndex
Definition WsfPProxySatisfy.hpp:313
EquationExpr(size_t aNodeIndex)
Definition WsfPProxySatisfy.hpp:280
ExprType mExprType
Definition WsfPProxySatisfy.hpp:310
EquationExpr()
Definition WsfPProxySatisfy.hpp:285
EquationExpr(std::string &aFunc)
Definition WsfPProxySatisfy.hpp:274
ExprType
Definition WsfPProxySatisfy.hpp:293
@ cFUNCTION
Definition WsfPProxySatisfy.hpp:297
@ cUNSET_VALUE
Definition WsfPProxySatisfy.hpp:296
@ cVALUE
Definition WsfPProxySatisfy.hpp:295
@ cNODE_INDEX
Definition WsfPProxySatisfy.hpp:300
EquationExpr(WsfPProxyValue v)
Definition WsfPProxySatisfy.hpp:268
Represents an assignment being made in a grammar action.
Definition WsfPProxySatisfy.hpp:319
EquationExpr mRHS
Definition WsfPProxySatisfy.hpp:324
size_t mActionSet
Definition WsfPProxySatisfy.hpp:321
WsfPProxyPath mLHS
Definition WsfPProxySatisfy.hpp:323
void Cleanup()
Definition WsfPProxySatisfy.hpp:326
Definition WsfPProxySatisfy.hpp:113
WsfPProxyUndoValue current
Definition WsfPProxySatisfy.hpp:177
SatPoint(const SatPoint &aSrc, WsfPParseRuleTrace *aTrace)
Definition WsfPProxySatisfy.hpp:133
SatPoint()
Definition WsfPProxySatisfy.hpp:120
WsfPProxyValue returnValue
Definition WsfPProxySatisfy.hpp:179
SatPoint(WsfPProxyUndoValue aCurrent, WsfPProxyValue aDesired, WsfPProxyValue aReturnValue, WsfPParseRuleTrace *aTrace, int aFlags=0)
Definition WsfPProxySatisfy.hpp:141
bool NeedToComplete() const
Definition WsfPProxySatisfy.hpp:175
bool IsTargetComplete() const
Definition WsfPProxySatisfy.hpp:154
Flags
Definition WsfPProxySatisfy.hpp:116
@ cTARGET_COMPLETE
Definition WsfPProxySatisfy.hpp:117
void SetTargetComplete(bool aIsComplete)
Definition WsfPProxySatisfy.hpp:156
SatPoint(const SatPoint &aSrc)
Definition WsfPProxySatisfy.hpp:125
WsfPProxyValue desired
Definition WsfPProxySatisfy.hpp:178
int flags
Definition WsfPProxySatisfy.hpp:182
WsfPParseRuleTrace * trace
Definition WsfPProxySatisfy.hpp:181
Definition WsfPProxySatisfy.hpp:198
bool TargetComplete() const
Definition WsfPProxySatisfy.hpp:212
bool Success() const
Definition WsfPProxySatisfy.hpp:210
SatisfyResult & operator+=(const SatisfyResult &aRhs)
Definition WsfPProxySatisfy.hpp:214
SatisfyResult(SatisfyResultEnum aResult)
Definition WsfPProxySatisfy.hpp:199
SatisfyResult()
Definition WsfPProxySatisfy.hpp:203
unsigned int mResult
Definition WsfPProxySatisfy.hpp:219
Disposition
Definition WsfPProxySatisfy.hpp:360
@ cCONTINUE
Definition WsfPProxySatisfy.hpp:361
@ cSTOP
Definition WsfPProxySatisfy.hpp:362
SolveResult()
Definition WsfPProxySatisfy.hpp:364
Disposition mDisposition
Definition WsfPProxySatisfy.hpp:368
Copyrights Multiple, All Rights Reserved