VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
msdlHierarchyPropertyMappings.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/vrfutilDefines.h"
12 #include "vlpi/entityType.h"
13 
14 #include <string>
15 #include <map>
16 #include <set>
17 
18 class DtFilename;
19 
20 #define DtImportDataMergeMappings "DtImportDataMergeMappings"
21 
22 class DT_DLL_vrfutil DtSidcCode : public DtString
26 {
27 public:
28  DtSidcCode(const DtString&);
29  DtSidcCode(const DtSidcCode&);
30 
31  virtual ~DtSidcCode() override;
32 
33  virtual bool matches(const DtSidcCode&);
34  virtual bool matches(const std::string&);
35 };
36 
38 {
39 public:
42 
43  virtual ~DtSidcMappedDataItem();
44 
45  DtSidcMappedDataItem& operator=(const DtSidcMappedDataItem& rhs);
46 
47  virtual bool matches(const DtSidcMappedDataItem& rhs) const;
48 
49  std::string myNameMapping;
50  std::string myDisMapping;
51  std::string myHierarchyItem;
52 };
53 
54 typedef std::multimap<std::string, DtSidcMappedDataItem> StringToDataItemMultiMap;
55 
57 {
58 public:
59  typedef std::map<std::string, std::string> StringMap;
60  typedef std::multimap<std::string, std::string> StringMultiMap;
61  typedef std::map<std::string, int> StringIntMap;
62  typedef std::map<int, std::string> IntStringMap;
63 
64 public:
68 
71 
73 
75  virtual std::string mapHierarchyItemToSidc(const std::string& msdlHierarchy) const;
76 
78  virtual std::string mapSidcToName(const std::string& sidc) const;
79  virtual std::string mapSidcToHierarchyItem(const std::string& sidc) const;
80 
83  virtual void mapUnitSubcategoryToSidc(std::string& sidc, const DtEntityType& entType) const;
84 
88  virtual void mapUnitCategoryToSidc(std::string& sidc, const DtEntityType& entType) const;
89 
93  virtual std::string mapEntityTypeToSidc(const DtEntityType&) const;
94 
95  virtual int mapCountryCodeToDisEnumeration(const std::string&) const;
96 
102  virtual DtEntityType mapSidcToDisEnumeration(const std::string sidcCode, const std::string& countryCode = "US") const;
103 
106  virtual DtEntityType mapSidcToEntityType(const std::string&, const std::string& countryCode = "US") const;
107 
109  virtual DtEntityType mapSidcToTacticalGraphicType(const std::string& sidcCode, const std::string& symbolClass) const;
110 
112  virtual std::string mapCountryEnumerationToCountryCode(int) const;
113 
116  virtual std::string mapCountryCodeToCountryName(const std::string&) const;
117 
119  virtual bool loadMsdlSidcMappingsFile(const DtFilename&);
120 
122  virtual bool loadCountryCodesMappingFile(const DtFilename&);
123 
125  virtual bool save();
126 
128  virtual bool save(const DtFilename&);
129 
131  virtual void merge(const DtMsdlHierarchyPropertyMappings&);
132 
135  virtual std::string findClosestSidc(const std::string& source) const;
136 
137  virtual void addSidcCode(const std::string&);
138 
140  virtual void addToCountryCodeToCountryNameMapping(const std::string& countrycode, const std::string& countryname);
141 
143  virtual void addToHierarchyMapping(const std::string& enumeration, const std::string& sidcCode);
144 
146  virtual void addToDataItemMapping(const std::string& sidcCode, const std::string& name, const std::string& entityType, const std::string& hierarchy);
147 
149  virtual void clearHierarchyMappings();
150 
152  virtual void addCountryCode(const std::string&, int);
153 
155  virtual void merge(StringMap&, const StringMap&);
156 
157  virtual void merge(StringToDataItemMultiMap& toMergeInto, const StringToDataItemMultiMap& toMergeFrom);
158 
160  const StringMap& countryCodeToNameMap() const;
161 
163  const StringToDataItemMultiMap& sidcToDataItemMultiMap() const;
164 
165 public:
171 
172  std::set<std::string> mySidcCodes;
173 
174  DtFilename myFile;
175 };
176 
177 namespace DtBufferSerialize
178 {
179  DT_DLL_vrfutil char *encode(const DtMsdlHierarchyPropertyMappings& val, char *buffer);
180  DT_DLL_vrfutil const char *decode(DtMsdlHierarchyPropertyMappings& val, const char *buffer);
182 
185 
186  DT_DLL_vrfutil char *encode(const DtSidcMappedDataItem& val, char *buffer);
187  DT_DLL_vrfutil const char *decode(DtSidcMappedDataItem& val, const char *buffer);
189 
190 
191  DT_DLL_vrfutil char* encode(const StringToDataItemMultiMap& val, char* buffer);
192  DT_DLL_vrfutil const char* decode(StringToDataItemMultiMap& val, const char* buffer);
194 
195 
196 };
std::multimap< std::string, DtSidcMappedDataItem > StringToDataItemMultiMap
Definition: msdlHierarchyPropertyMappings.h:54
StringMap myCountryCodeToCountryName
Definition: msdlHierarchyPropertyMappings.h:167
StringMap myHierarchyItemToSidc
Definition: msdlHierarchyPropertyMappings.h:166
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
std::multimap< std::string, std::string > StringMultiMap
Definition: msdlHierarchyPropertyMappings.h:60
StringIntMap myCountryCodes
Definition: msdlHierarchyPropertyMappings.h:168
DT_DLL_vrfutil void decodeFromImportData(DtMsdlHierarchyPropertyMappings &, const std::string &)
std::string myHierarchyItem
Definition: msdlHierarchyPropertyMappings.h:51
std::string myDisMapping
Definition: msdlHierarchyPropertyMappings.h:50
std::map< std::string, std::string > StringMap
Definition: msdlHierarchyPropertyMappings.h:59
Definition: msdlHierarchyPropertyMappings.h:37
std::map< std::string, int > StringIntMap
Definition: msdlHierarchyPropertyMappings.h:61
This class will load up a strictly formatted properties file to map MSDL hierarchy codes to SIDC code...
Definition: msdlHierarchyPropertyMappings.h:25
Definition: msdlHierarchyPropertyMappings.h:56
StringToDataItemMultiMap mySidcToDataItems
Definition: msdlHierarchyPropertyMappings.h:170
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
IntStringMap myCountryEnumerationCodes
Definition: msdlHierarchyPropertyMappings.h:169
const char * source
Definition: lz4.h:442
DT_DLL_vrfutil std::string encodeForImportData(const DtMsdlHierarchyPropertyMappings &)
DtFilename myFile
Definition: msdlHierarchyPropertyMappings.h:174
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
std::set< std::string > mySidcCodes
Definition: msdlHierarchyPropertyMappings.h:172
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
std::string myNameMapping
Definition: msdlHierarchyPropertyMappings.h:49
std::map< int, std::string > IntStringMap
Definition: msdlHierarchyPropertyMappings.h:62

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)