10 #pragma warning (disable:4503)
18 #include <libxml/xmlmemory.h>
19 #include <libxml/parser.h>
71 typedef std::map<SISOSpecific, std::pair<std::string, IntStringMap> >
SISOSpecificMap;
83 virtual bool loadFromFile(
const std::string&
filename);
86 virtual void registerCallback(
int entryType,
DtSisoEntryReader cb,
void* usrData);
87 virtual void unregisterCallback(
int entryType,
DtSisoEntryReader cb,
void* usrData);
91 virtual bool countryList(std::map<int, std::string>& list);
92 virtual int country(
const std::string& s)
const;
93 virtual std::string country(
int cty)
const;
95 virtual bool warheadList(std::map<int, std::string>& list);
96 virtual int warhead(
const std::string& s);
97 virtual std::string warhead(
int wd);
99 virtual bool kindList(std::map<int, std::string>& list);
100 virtual int kind(
const std::string& s);
101 virtual std::string kind(
int kd);
103 virtual bool domainList(
int kind, std::map<int, std::string>& list);
104 virtual int domain(
int kind,
const std::string& s);
105 virtual std::string domain(
int kind,
int dom);
107 virtual bool categoryList(
int kind,
int domain, std::map<int, std::string>& list);
108 virtual int category(
int kind,
int domain,
const std::string& s);
109 virtual std::string category(
int kind,
int domain,
int cat);
111 virtual bool subcategoryList(
int kind,
int domain,
int country,
int cat, std::map<int, std::string>& list);
112 virtual int subcategory(
int kind,
int domain,
int country,
int cat,
const std::string& s);
113 virtual std::string subcategory(
int kind,
int domain,
int country,
int cat,
int subcat);
115 virtual bool specificList(
int kind,
int domain,
int country,
int cat,
int subcat, std::map<int, std::string>& list);
116 virtual int specific(
int kind,
int domain,
int country,
int cat,
int subcat,
const std::string& s);
117 virtual std::string specific(
int kind,
int domain,
int country,
int cat,
int subcat,
int spec);
119 virtual bool extraList(
int kind,
int domain,
int country,
int cat,
int subcat,
int specific, std::map<int, std::string>& list);
120 virtual int extra(
int kind,
int domain,
int country,
int cat,
int subcat,
int specific,
const std::string& s);
121 virtual std::string extra(
int kind,
int domain,
int country,
int cat,
int subcat,
int spec,
int extra);
126 virtual std::string displayName(
const DtEntityType&,
bool includeKind =
true,
int stopAt = 5);
129 virtual std::string enumerationStrings(
const DtEntityType&);
132 virtual DtString articulatedPart(
int)
const;
136 static void readCountryCodesCb(
xmlNodePtr node,
void* usr);
137 static void readKindsCb(
xmlNodePtr node,
void* usr);
138 static void readDomainsPlatformCb(
xmlNodePtr node,
void* usr);
139 static void readCategoryPlatLandCb(
xmlNodePtr node,
void* usr);
140 static void readCategoryPlatAirCb(
xmlNodePtr node,
void* usr);
141 static void readCategoryPlatSurfaceCb(
xmlNodePtr node,
void* usr);
142 static void readCategoryPlatSubsurfaceCb(
xmlNodePtr node,
void* usr);
143 static void readCategoryPlatSpaceCb(
xmlNodePtr node,
void* usr);
144 static void readDomainsMunitionCb(
xmlNodePtr node,
void* usr);
145 static void readCategoryMunitionCb(
xmlNodePtr node,
void* usr);
146 static void readCategoryAggsCb(
xmlNodePtr node,
void* usr);
147 static void readSubcategoryAggsCb(
xmlNodePtr node,
void* usr);
148 static void readWarheadsCb(
xmlNodePtr node,
void* usr);
149 static void readArticulatedPartsCb(
xmlNodePtr node,
void* usr);
150 static void readAllCb(
xmlNodePtr node,
void* usr);
155 virtual void readCountryCodes(
xmlNodePtr node);
157 virtual void readDomains(
xmlNodePtr node,
int kind);
158 virtual void readCategories(
xmlNodePtr node,
int kind,
int domain);
161 virtual void readSubcategoriesAggs(
xmlNodePtr node);
162 void readCategoryAggsInner(
xmlNodePtr node,
int kind,
int domain);
165 virtual void readArticulatedParts(
xmlNodePtr node);
167 virtual int xmlChartoInt(
xmlChar* c)
const;
168 virtual void processSingleLevelEntry(
xmlNodePtr node, std::map<int, std::string>& l)
const;
170 virtual void parseSpecifics(SISOSubcategoryMap::iterator,
xmlNodePtr);
187 typedef std::map<SISOKind, std::map<SISODomain, IntStringMap> >
CategoryMap;