10 #pragma warning (disable:4503)
18 #include <libxml/xmlmemory.h>
19 #include <libxml/parser.h>
70 typedef std::map<SISOSpecific, std::pair<std::string, IntStringMap> >
SISOSpecificMap;
82 virtual bool loadFromFile(
const std::string&
filename);
85 virtual void registerCallback(
int entryType,
DtSisoEntryReader cb,
void* usrData);
86 virtual void unregisterCallback(
int entryType,
DtSisoEntryReader cb,
void* usrData);
90 virtual bool countryList(std::map<int, std::string>& list);
91 virtual int country(
const std::string& s)
const;
92 virtual std::string country(
int cty)
const;
94 virtual bool warheadList(std::map<int, std::string>& list);
95 virtual int warhead(
const std::string& s);
96 virtual std::string warhead(
int wd);
98 virtual bool kindList(std::map<int, std::string>& list);
99 virtual int kind(
const std::string& s);
100 virtual std::string kind(
int kd);
102 virtual bool domainList(
int kind, std::map<int, std::string>& list);
103 virtual int domain(
int kind,
const std::string& s);
104 virtual std::string domain(
int kind,
int dom);
106 virtual bool categoryList(
int kind,
int domain, std::map<int, std::string>& list);
107 virtual int category(
int kind,
int domain,
const std::string& s);
108 virtual std::string category(
int kind,
int domain,
int cat);
110 virtual bool subcategoryList(
int kind,
int domain,
int country,
int cat, std::map<int, std::string>& list);
111 virtual int subcategory(
int kind,
int domain,
int country,
int cat,
const std::string& s);
112 virtual std::string subcategory(
int kind,
int domain,
int country,
int cat,
int subcat);
114 virtual bool specificList(
int kind,
int domain,
int country,
int cat,
int subcat, std::map<int, std::string>& list);
115 virtual int specific(
int kind,
int domain,
int country,
int cat,
int subcat,
const std::string& s);
116 virtual std::string specific(
int kind,
int domain,
int country,
int cat,
int subcat,
int spec);
118 virtual bool extraList(
int kind,
int domain,
int country,
int cat,
int subcat,
int specific, std::map<int, std::string>& list);
119 virtual int extra(
int kind,
int domain,
int country,
int cat,
int subcat,
int specific,
const std::string& s);
120 virtual std::string extra(
int kind,
int domain,
int country,
int cat,
int subcat,
int spec,
int extra);
125 virtual std::string displayName(
const DtEntityType&,
bool includeKind =
true);
128 virtual std::string enumerationStrings(
const DtEntityType&);
132 static void readCountryCodesCb(
xmlNodePtr node,
void* usr);
133 static void readKindsCb(
xmlNodePtr node,
void* usr);
134 static void readDomainsPlatformCb(
xmlNodePtr node,
void* usr);
135 static void readCategoryPlatLandCb(
xmlNodePtr node,
void* usr);
136 static void readCategoryPlatAirCb(
xmlNodePtr node,
void* usr);
137 static void readCategoryPlatSurfaceCb(
xmlNodePtr node,
void* usr);
138 static void readCategoryPlatSubsurfaceCb(
xmlNodePtr node,
void* usr);
139 static void readCategoryPlatSpaceCb(
xmlNodePtr node,
void* usr);
140 static void readDomainsMunitionCb(
xmlNodePtr node,
void* usr);
141 static void readCategoryMunitionCb(
xmlNodePtr node,
void* usr);
142 static void readCategoryAggsCb(
xmlNodePtr node,
void* usr);
143 static void readSubcategoryAggsCb(
xmlNodePtr node,
void* usr);
144 static void readWarheadsCb(
xmlNodePtr node,
void* usr);
145 static void readAllCb(
xmlNodePtr node,
void* usr);
150 virtual void readCountryCodes(
xmlNodePtr node);
152 virtual void readDomains(
xmlNodePtr node,
int kind);
153 virtual void readCategories(
xmlNodePtr node,
int kind,
int domain);
156 virtual void readSubcategoriesAggs(
xmlNodePtr node);
157 void readCategoryAggsInner(
xmlNodePtr node,
int kind,
int domain);
161 virtual int xmlChartoInt(
xmlChar* c)
const;
162 virtual void processSingleLevelEntry(
xmlNodePtr node, std::map<int, std::string>& l)
const;
164 virtual void parseSpecifics(SISOSubcategoryMap::iterator,
xmlNodePtr);
181 typedef std::map<SISOKind, std::map<SISODomain, IntStringMap> >
CategoryMap;