WSF
WsfPProxyRegistry.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 VIPROXYREGISTRY_HPP
16#define VIPROXYREGISTRY_HPP
17
18#include "wsf_parser_export.h"
19
20#include <map>
21#include <memory>
22#include <vector>
23
25#include "WsfPProxyType.hpp"
26#include "WsfParseRule.hpp"
27#include "WsfParseType.hpp"
28
33class WsfPProxyStructPointerType;
34
35// Maintains all proxy types.
36class WSF_PARSER_EXPORT WsfPProxyRegistry
37{
38public:
43
44 void Setup(WsfParseStruct* aRootStructPtr, WsfParseType* aBasicTypes);
45 // void Test(WsfParseNode* aRoot);
46 void FindStructs(WsfParseNamedRule* aRootPtr, std::vector<WsfParseStruct*>& aStructs);
47 WsfPProxyType* GetType(const std::string& aType);
52 WsfPProxyStructPointerType* GetPointerType(const WsfPProxyType* aTypePtr);
53 WsfPProxyEnumType* GetEnum(const std::string& aFullName, WsfParseEnumerationValues& aValues);
54 void CreateDefaultStruct(WsfParseStruct* aStructPtr);
56 void PrintProxy(WsfPProxyValue aRoot, WsfPProxyValue aValue, ut::log::MessageStream& aStream) const;
57 WsfPProxyType* GetStringType() const { return mDataTypes.at("String").get(); }
58
59 void InitializeStruct(WsfPProxyStructType* aStructPtr);
60 void BuildBasicRootFromBasicTypes(WsfPProxyValue& aOutput, WsfParseType* aInput);
61
62 void OutputJSON(WsfPProxyValue aVal, WsfPProxyValue aRoot, std::ostream& aStream, int aOutputOptions);
63
64 using DataTypeMap = std::map<std::string, std::unique_ptr<WsfPProxyType>>;
65
69 DataTypeMap mDataTypes; // mBasicValueTypes;
70 std::map<WsfParseStruct*, WsfPProxyStructType*> mStructs;
71
73
74 WsfPProxyStructValue mBasicRoot; // a mirror of the root containing base types.
75
77
78private:
79 WsfPProxyType* GetAttributeType(WsfParseStruct* aStructPtr, WsfParseAttribute& aAttr);
80};
81
82#endif
@ cMDB_PROXY_REGISTRY
Definition WsfParseDebugMarkers.hpp:24
std::vector< UtStringRef > WsfParseTypePath
Definition WsfParseTypePath.hpp:21
Definition WsfPProxyType.hpp:114
Definition WsfPProxyBasicTypes.hpp:182
std::map< WsfParseStruct *, WsfPProxyStructType * > mStructs
Definition WsfPProxyRegistry.hpp:70
void FindStructs(WsfParseNamedRule *aRootPtr, std::vector< WsfParseStruct * > &aStructs)
Definition WsfPProxyRegistry.cpp:256
WsfParseNamedRule * mEntryPointRule
Definition WsfPProxyRegistry.hpp:68
WsfPProxyType * GetType(const std::string &aType)
Definition WsfPProxyRegistry.cpp:314
void Setup(WsfParseStruct *aRootStructPtr, WsfParseType *aBasicTypes)
Definition WsfPProxyRegistry.cpp:35
UT_MEMORY_DEBUG_MARKER(cMDB_PROXY_REGISTRY)
WsfPProxyStructValue mBasicRoot
Definition WsfPProxyRegistry.hpp:74
void CreateDefaultStruct(WsfParseStruct *aStructPtr)
Definition WsfPProxyRegistry.cpp:173
void * mApplicationPointer
Definition WsfPProxyRegistry.hpp:66
WsfPProxyEnumType * GetEnum(const std::string &aFullName, WsfParseEnumerationValues &aValues)
Definition WsfPProxyRegistry.cpp:395
WsfPProxyRegistry()
Definition WsfPProxyRegistry.cpp:30
WsfPProxyRegistry(const WsfPProxyRegistry &)=delete
WsfPProxyType * GetStringType() const
Definition WsfPProxyRegistry.hpp:57
WsfPProxyStructPointerType * GetPointerType(const WsfPProxyType *aTypePtr)
WsfPProxyRegistry & operator=(const WsfPProxyRegistry &)=delete
std::map< std::string, std::unique_ptr< WsfPProxyType > > DataTypeMap
Definition WsfPProxyRegistry.hpp:64
WsfPProxyStructType * GetStruct(WsfParseStruct *aStructPtr)
Definition WsfPProxyRegistry.cpp:291
WsfParseNamedRule * mRootRule
Definition WsfPProxyRegistry.hpp:67
WsfPProxyStructValue GetBasicRoot()
Definition WsfPProxyRegistry.hpp:55
DataTypeMap mDataTypes
Definition WsfPProxyRegistry.hpp:69
WsfPProxyType * FindBasicType(const WsfParseTypePath &aPath)
Definition WsfPProxyRegistry.cpp:385
WsfParseType * mBasicTypes
Definition WsfPProxyRegistry.hpp:72
Definition WsfPProxyBasicTypes.hpp:116
Definition WsfPProxyStructType.hpp:33
Definition WsfPProxyStructValue.hpp:23
Definition WsfPProxyType.hpp:37
Definition WsfPProxyValue.hpp:33
An attribute which belongs to a WsfParseStruct.
Definition WsfParseRule.hpp:463
Definition WsfParseRule.hpp:505
Definition WsfParseRule.hpp:350
Definition WsfParseRule.hpp:527
Definition WsfParseType.hpp:40
Definition WsfParseRule.hpp:58
Copyrights Multiple, All Rights Reserved