MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
xmlEnumExtractor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 #pragma warning(disable : 4503)
12 
15 
16 #include <vlutil/vlString.h>
17 
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <libxml/xmlmemory.h>
21 #include <libxml/parser.h>
22 #include <fstream>
23 #include <sstream>
24 #include <map>
25 #include <vector>
26 
27 #include <QHash>
28 #include <omtReader/disDictionary.h>
29 
30 // List of UID entries processed by callbacks
31 enum
32 {
55 };
56 
58 const int DtAggregate = 11;
59 
61 
62 typedef std::map<int, DtString> DtEnumStringMap1;
63 typedef std::map<int, std::pair<DtString, DtEnumStringMap1> > DtEnumStringMap2;
64 typedef std::map<int, std::pair<DtString, DtEnumStringMap2> > DtEnumStringMap3;
65 typedef std::map<int, std::pair<DtString, DtEnumStringMap3> > DtEnumStringMap4;
66 typedef std::map<int, std::pair<DtString, DtEnumStringMap4> > DtEnumStringMap5;
67 typedef std::map<int, std::pair<DtString, DtEnumStringMap5> > DtEnumStringMap6;
68 typedef std::map<int, std::pair<DtString, DtEnumStringMap6> > DtEnumStringMap7;
70 
71 
73 {
74 public:
75 
77  typedef void (*DtSisoEntryReader)(xmlNodePtr node, void* usr);
78 
80 
81  static DtSisoRefExtractor* get();
82  static void dispose();
84 
86  static void setFilename(const DtString& filenameToUse);
87 
88 public:
89 
91 
92  virtual const DtEnumStringMap2& enumMap() const;
93  virtual DtEnumStringMap2& enumMap();
95 
97 
98  virtual const DtEnumStringMap1& enumMap(int uid) const;
99  virtual DtEnumStringMap1& enumMap(int uid);
101 
103 
104  virtual const DtEnumStringMap1* enumMap(const DtString& name) const;
105  virtual DtEnumStringMap1* enumMap(const DtString& name);
107 
109  virtual const DtEnumStringMap7& entityTypeMap() const;
110 
112 
113  virtual const DtDisEntityTypeEntry* findEntityType(const DtEntityMapperKey& entKey) const;
114  virtual DtDisEntityTypeEntry* findEntityType(const DtEntityMapperKey& entKey);
116 
118 
119  virtual const DtDisEntityTypeEntry* findAggregateType(const DtEntityMapperKey& entKey) const;
120  virtual DtDisEntityTypeEntry* findAggregateType(const DtEntityMapperKey& entKey);
122 
124 
125  virtual DtEnumStringMap1& kindList();
126  virtual const DtEnumStringMap1& kindList() const;
127  virtual int kind(const DtString& name) const;
128  virtual const DtString& kindName(int kd);
130 
132 
133  virtual DtEnumStringMap1* domainList(int kind);
134  virtual const DtEnumStringMap1* domainList(int kind) const;
135  virtual int domain(int kind, const DtString& name) const;
136  virtual const DtString& domainName(int kind, int dom);
138 
140 
141  virtual DtEnumStringMap1& countryList();
142  virtual const DtEnumStringMap1& countryList() const;
143  virtual int country(const DtString& name) const;
144  virtual const DtString& countryName(int cty);
146 
148 
149  virtual DtEnumStringMap1* categoryList(int kind, int domain);
150  virtual const DtEnumStringMap1* categoryList(int kind, int domain) const;
151  virtual int category(int kind, int domain, const DtString& name) const;
152  virtual const DtString& categoryName(int kind, int domain, int cat);
154 
156 
157  virtual DtEnumStringMap1* subcategoryList(int kind, int domain, int cat);
158  virtual const DtEnumStringMap1* subcategoryList(int kind, int domain, int cat) const;
159  virtual int subcategory(int kind, int domain, int cat, const DtString& name) const;
160  virtual const DtString& subcategoryName(int kind, int domain, int cat, int subcat);
162 
164 
165  virtual DtEnumStringMap1& aggSubCategoryList();
166  virtual const DtEnumStringMap1& aggSubCategoryList() const;
167  virtual int aggSubCategory(const DtString& name) const;
168  virtual const DtString& aggSubCategoryName(int subcat);
170 
171 public:
172 
174 
175  static void collectCountryCodesCb(xmlNodePtr node, void* usr);
176  static void collectKindsCb(xmlNodePtr node, void* usr);
177  static void collectAggKindsCb(xmlNodePtr node, void* usr);
178  static void collectDomainsPlatformCb(xmlNodePtr node, void* usr);
179  static void collectCategoryPlatLandCb(xmlNodePtr node, void* usr);
180  static void collectCategoryPlatAirCb(xmlNodePtr node, void* usr);
181  static void collectCategoryPlatSurfaceCb(xmlNodePtr node, void* usr);
182  static void collectCategoryPlatSubsurfaceCb(xmlNodePtr node, void* usr);
183  static void collectCategoryPlatSpaceCb(xmlNodePtr node, void* usr);
184  static void collectCategoryCulturalFeature(xmlNodePtr node, void* usr);
185  static void collectDomainsMunitionCb(xmlNodePtr node, void* usr);
186  static void collectCategoryMunitionCb(xmlNodePtr node, void* usr);
187  static void collectSubcategoryAggsCb(xmlNodePtr node, void* usr);
188  static void collectEntityTypesCb(xmlNodePtr node, void* usr);
189  static void collectAggregateTypesCb(xmlNodePtr node, void* usr);
191 
192 
193 protected:
194 
197 
199  virtual ~DtSisoRefExtractor();
200 
202  virtual void init(const DtString& filename);
203 
205 
206  virtual void registerCallback(int entryType, DtSisoEntryReader cb, void* usrData);
207  virtual void unregisterCallback(int entryType);
209 
210 
212 
213  virtual void collectCountryCodes(xmlNodePtr node);
214  virtual void collectKinds(xmlNodePtr node);
215  virtual void collectAggKinds(xmlNodePtr node);
216  virtual void collectDomains(xmlNodePtr node, int kind);
217  virtual void collectCategories(xmlNodePtr node, int kind, int domain);
218  virtual void collectSubcategories(xmlNodePtr node, int kind, int domain, int cat);
219  virtual void collectAggSubcategories(xmlNodePtr node);
221 
223  virtual void collectEntityTypes(xmlNodePtr cur, bool typesForEntities);
224 
226  virtual void processFile(const DtString& filename);
227 
229  virtual void collectSingleLevelEntry(xmlNodePtr node, DtEnumStringMap1& l);
230 
232  virtual void collectEnum(xmlNodePtr node, int uid);
233 
235  virtual int xmlChartoInt(xmlChar* c);
236 
238 
239  virtual int intProp(xmlNodePtr node, char* name);
240  virtual bool getIntProp(xmlNodePtr node, char* name, int& value);
242 
244 
245  virtual DtString stringProp(xmlNodePtr node, char* name);
246  virtual bool getStringProp(xmlNodePtr node, char* name, DtString& value);
248 
249 protected:
250 
251  std::map<int, std::pair<DtSisoEntryReader,void*> > myReadersMap;
252 
258 
260 
264 
268 
269  DtString myEmptyString;
270 
271  protected:
272 
274  static bool theInitialized;
275  static DtString theFilename;
276 };
DtEnumStringMap2 myEnumMap
Definition: xmlEnumExtractor.h:265
static bool theInitialized
Definition: xmlEnumExtractor.h:274
Definition: xmlEnumExtractor.h:36
Definition: xmlEnumExtractor.h:50
DtOrderedKeyList< DtDisEntityTypeEntry * > myEntityKeys
Definition: xmlEnumExtractor.h:266
Definition: xmlEnumExtractor.h:53
static DtString theFilename
Definition: xmlEnumExtractor.h:275
Definition: xmlEnumExtractor.h:41
Definition: xmlEnumExtractor.h:51
DtEnumStringMap2 myDomainMap
Definition: xmlEnumExtractor.h:255
DtEnumStringMap1 myEntityKindMap
Definition: xmlEnumExtractor.h:253
Definition: xmlEnumExtractor.h:72
DtEnumStringMap3 myCategoryMap
Definition: xmlEnumExtractor.h:256
std::map< int, std::pair< DtString, DtEnumStringMap2 > > DtEnumStringMap3
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:64
Definition: xmlEnumExtractor.h:39
Definition: xmlEnumExtractor.h:48
Definition: xmlEnumExtractor.h:49
Definition: xmlEnumExtractor.h:35
std::map< int, std::pair< DtString, DtEnumStringMap6 > > DtEnumStringMap7
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:68
Definition: xmlEnumExtractor.h:38
Definition: xmlEnumExtractor.h:47
std::map< int, std::pair< DtString, DtEnumStringMap3 > > DtEnumStringMap4
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:65
DtEnumStringMap4 mySubcategoryMap
Definition: xmlEnumExtractor.h:257
Definition: xmlEnumExtractor.h:33
Definition: xmlEnumExtractor.h:52
DtEnumStringMap7 myEntityTypeMap
Definition: xmlEnumExtractor.h:259
Definition: xmlEnumExtractor.h:37
Definition: xmlEnumExtractor.h:34
static DtSisoRefExtractor * theRef
Definition: xmlEnumExtractor.h:273
DtEnumStringMap1 myCountryMap
Definition: xmlEnumExtractor.h:254
Definition: xmlEnumExtractor.h:42
Definition: xmlEnumExtractor.h:44
std::map< int, std::pair< DtString, DtEnumStringMap4 > > DtEnumStringMap5
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:66
const int DtAggregate
Aggregate Kind.
Definition: xmlEnumExtractor.h:58
std::map< int, std::pair< DtString, DtEnumStringMap5 > > DtEnumStringMap6
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:67
DtEnumStringMap1 myAggSubCategoryMap
Definition: xmlEnumExtractor.h:263
std::map< int, std::pair< DtSisoEntryReader, void * > > myReadersMap
Definition: xmlEnumExtractor.h:251
std::map< int, std::pair< DtString, DtEnumStringMap1 > > DtEnumStringMap2
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:63
DtEnumStringMap7 myAggregateTypeMap
Definition: xmlEnumExtractor.h:262
Definition: xmlEnumExtractor.h:46
Definition: xmlEnumExtractor.h:43
DtOrderedKeyList< DtDisEntityTypeEntry * > myAggregateKeys
Definition: xmlEnumExtractor.h:267
#define DT_DLL_TRFCANLZR
Definition: trafficAnalyzerPlugin.h:16
DtEnumStringMap1 myAggregateKindMap
Definition: xmlEnumExtractor.h:261
DtString myEmptyString
Definition: xmlEnumExtractor.h:269
std::map< int, DtString > DtEnumStringMap1
Storage for collected enumerations.
Definition: xmlEnumExtractor.h:62
Definition: xmlEnumExtractor.h:40
Definition: xmlEnumExtractor.h:45
Definition: xmlEnumExtractor.h:54

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)