WSF
WsfPProxyActionLookup.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 WSFPPROXYACTIONLOOKUP_HPP
16#define WSFPPROXYACTIONLOOKUP_HPP
17#include <map>
18#include <set>
19#include <vector>
20
21#include "WsfParseAction.hpp"
22
23class WsfPProxyType;
25class WsfParseRule;
32{
33public:
35
37 size_t aAttributeIndex,
38 std::vector<WsfParseRule*>& aAlternateChoices);
39
40private:
41 void RecurseAllRules(WsfParseNamedRule* aNamedRulePtr);
42 static WsfPProxyType* GetAddressType(WsfPProxyType* aCurrentTypePtr, WsfParseActionAddress& aAddr);
43 void GetChangedAttributes_ApplyActions(WsfParseSequence* aSequencePtr,
44 WsfParseAction* aAction,
45 std::set<size_t>& aAttributeIndices,
46 WsfPProxyType*& aCurrentTypePtr);
47
48 // Compute the set of attributes that might be changed when executing this rule
49 // Indices changed by this rule are added to aAttributeIndices.
50 void GetChangedAttributes(WsfParseRule* aRulePtr, std::set<size_t>& aAttributeIndices, WsfPProxyType* aCurrentTypePtr);
51
52 WsfPProxyType* LookupType(WsfPProxyType* aTypePtr, const std::string& aSubType);
53 WsfPProxyType* LookupType(WsfPProxyType* aBaseType, WsfParseTypeName& aPath);
54
55 WsfPProxyType* mRootType;
56 WsfPProxyRegistry* mRegistryPtr;
57 std::set<WsfParseRule*> mRulesEvaluating;
58 std::map<WsfParseRule*, std::set<size_t>> mRuleChangedAttributes;
59};
60
61#endif
void GetRulesThatModifyAttribute(WsfParseAlternate *aAlternate, size_t aAttributeIndex, std::vector< WsfParseRule * > &aAlternateChoices)
Definition WsfPProxyActionLookup.cpp:46
WsfPProxyActionLookup(WsfPProxyRegistry *aRegistryPtr)
Definition WsfPProxyActionLookup.cpp:24
Definition WsfPProxyRegistry.hpp:37
Definition WsfPProxyType.hpp:37
Definition WsfParseAction.hpp:33
Definition WsfParseAction.hpp:329
Definition WsfParseAlternate.hpp:22
Definition WsfParseRule.hpp:350
Definition WsfParseRule.hpp:131
Definition WsfParseSequence.hpp:21
Definition WsfParseType.hpp:139
Copyrights Multiple, All Rights Reserved