18 #include <libxml/xmlmemory.h>
19 #include <libxml/parser.h>
35 typedef std::function<bool(const DtFilename&, DtEnumDictionary&)>
FileLoaderFcn;
54 static void setCreator(EnumLoaderCreator creator);
72 virtual void addInterestInEnum(
DtEnumUid uid);
94 virtual void unregisterFileLoader(
const DtString& fileExt);
100 virtual void unregisterFilePriorityReader(
const DtString& fileExt);
106 virtual void unregisterUidEntryReader(
DtEnumUid uid);
111 virtual void registerUidRangeEntryReader(
DtEnumUid lowerUid,
115 virtual void unregisterUidRangeEntryReader(
DtEnumUid lowerUid,
119 virtual void registerEntityTypeUidEntryReader(
DtEnumUid uid,
123 virtual void unregisterEntityTypeUidEntryReader(
DtEnumUid uid);
146 virtual void registerDefaultLoaders();
154 virtual unsigned readPriorityFromXml(
const DtFilename& fn);
160 virtual void readEntityTypesHierarchy(xmlNodePtr node,
DtEnumDictionary& dict)
const;
165 virtual DtEnumUid processSingleLevelEntry(xmlNodePtr node,
174 virtual void setEntityTypeLevel(
unsigned lvl,
int lowerVal,
int upperVal,
179 std::list<DtEntityTypeRange>& applics)
const;
182 virtual int xmlCharToInt(
const xmlChar* c)
const;
unsigned DtEnumUid
DtEnumUid represents a uid used in SISO-REF-010 or any of the MAK enumerations files.
Definition: enumDictionary.h:31
std::map< DtString, FileLoaderFcn > FileLoaderMap
Definition: enumLoader.h:186
DtFilename myCurrFilename
Definition: enumLoader.h:205
unsigned char xmlChar
Definition: fedReader.h:19
FilePriorityReaderMap myFilePriorityReaders
Definition: enumLoader.h:197
std::map< DtEntityTypeField, XmlEntityTypeEntryReaderFcn > XmlEntityTypeLevelReaderMap
Definition: enumLoader.h:192
Maintains a list of enumerations read in from files.
Definition: enumDictionary.h:102
XmlUidRangeReaderMap myReadersByUidRange
Definition: enumLoader.h:199
std::function< unsigned(const DtFilename &)> FilePriorityReaderFcn
The function prototype for loading an enumerations file.
Definition: enumLoader.h:38
DtEnumDictionary * myDict
Definition: enumLoader.h:203
Specifies a range of entity types, where each individual field can match a a range of values or a sin...
Definition: entityTypeRange.h:19
std::map< int, XmlEntityTypeEntryReaderFcn > XmlEntityTypeUidReaderMap
Definition: enumLoader.h:191
std::function< bool(const DtFilename &, DtEnumDictionary &)> FileLoaderFcn
The function prototype for loading an enumerations file.
Definition: enumLoader.h:35
FileLoaderMap myFileLoaders
Definition: enumLoader.h:196
bool myDefaultLoadersRegistered
Definition: enumLoader.h:194
std::function< void(xmlNodePtr, const Applicability &, DtEnumDictionary &)> XmlEntityTypeEntryReaderFcn
The function prototype for loading an individual entity type from an xml node.
Definition: enumLoader.h:41
static EnumLoaderCreator theCreator
Definition: enumLoader.h:207
std::map< XmlUidRange, XmlEntryReaderFcn > XmlUidRangeReaderMap
Definition: enumLoader.h:190
DtEntityTypeField
The different fields of an entity type.
Definition: enumDictionary.h:17
Instances of DtFilename are DtStrings which convert filenames to the native format.
Definition: vlFilename.h:20
Loads entity type enumerations from an XML file into a DtEnumDictionary.
Definition: enumLoader.h:22
#define DT_DLL_VLPROTIND
Definition: vlMachineTypes.h:110
std::list< DtEntityTypeRange > Applicability
Type for specifying the applicability of an enumeration.
Definition: enumLoader.h:32
std::map< int, XmlEntryReaderFcn > XmlUidReaderMap
Definition: enumLoader.h:188
std::function< void(xmlNodePtr, DtEnumDictionary &)> XmlEntryReaderFcn
The function prototype for loading a individual enumeration from an xml node.
Definition: enumLoader.h:44
std::map< int, DtEnumInfo > EnumMap
Definition: enumDictionary.h:120
XmlEntityTypeUidReaderMap myEntityTypeReadersByUid
Definition: enumLoader.h:200
Instances of DtString are used to represent strings.
Definition: vlString.h:36
XmlEntityTypeLevelReaderMap myEntityTypeReadersByLevel
Definition: enumLoader.h:201
std::map< DtString, FilePriorityReaderFcn > FilePriorityReaderMap
Definition: enumLoader.h:187
XmlUidReaderMap myReadersByUid
Definition: enumLoader.h:198
This file contains typedefs for machine dependant types.
std::pair< int, int > XmlUidRange
Definition: enumLoader.h:189