17 #include <libxml/xmlmemory.h>
18 #include <libxml/parser.h>
19 #include <boost/function.hpp>
35 typedef boost::function<bool(const DtFilename&, DtEnumDictionary&)>
FileLoaderFcn;
54 static void setCreator(EnumLoaderCreator creator);
61 virtual bool loadFromDirectory(
const DtFilename& directory,
DtEnumDictionary& dict);
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);
174 virtual void setEntityTypeLevel(
unsigned lvl,
int lowerVal,
int upperVal,
179 std::list<DtEntityTypeRange>& applics)
const;
182 virtual int xmlCharToInt(
const xmlChar* c)
const;
std::map< DtString, FileLoaderFcn > FileLoaderMap
Definition: enumLoader.h:186
DtFilename myCurrFilename
Definition: enumLoader.h:205
FilePriorityReaderMap myFilePriorityReaders
Definition: enumLoader.h:197
std::map< DtEntityTypeField, XmlEntityTypeEntryReaderFcn > XmlEntityTypeLevelReaderMap
Definition: enumLoader.h:192
Maintains a list of enumerations read in from files. The dictionary supports two different types of e...
Definition: enumDictionary.h:98
XmlUidRangeReaderMap myReadersByUidRange
Definition: enumLoader.h:199
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
boost::function< void(xmlNodePtr, DtEnumDictionary &)> XmlEntryReaderFcn
The function prototype for loading a individual enumeration from an xml node.
Definition: enumLoader.h:44
std::map< int, XmlEntityTypeEntryReaderFcn > XmlEntityTypeUidReaderMap
Definition: enumLoader.h:191
FileLoaderMap myFileLoaders
Definition: enumLoader.h:196
bool myDefaultLoadersRegistered
Definition: enumLoader.h:194
boost::function< bool(const DtFilename &, DtEnumDictionary &)> FileLoaderFcn
The function prototype for loading an enumerations file.
Definition: enumLoader.h:35
static EnumLoaderCreator theCreator
Definition: enumLoader.h:207
xmlNode * xmlNodePtr
Definition: DtLightPointTable.h:20
std::map< XmlUidRange, XmlEntryReaderFcn > XmlUidRangeReaderMap
Definition: enumLoader.h:190
DtEntityTypeField
The different fields of an entity type.
Definition: enumDictionary.h:17
Loads entity type enumerations from an XML file into a DtEnumDictionary.
Definition: enumLoader.h:22
unsigned char xmlChar
Definition: DtLightPointTable.h:21
std::list< DtEntityTypeRange > Applicability
Type for specifying the applicability of an enumeration. This indicates what higher level entity type...
Definition: enumLoader.h:32
std::map< int, XmlEntryReaderFcn > XmlUidReaderMap
Definition: enumLoader.h:188
boost::function< unsigned(const DtFilename &)> FilePriorityReaderFcn
The function prototype for loading an enumerations file.
Definition: enumLoader.h:38
#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
boost::function< void(xmlNodePtr, const Applicability &, DtEnumDictionary &)> XmlEntityTypeEntryReaderFcn
The function prototype for loading an individual entity type from an xml node.
Definition: enumLoader.h:41
std::map< int, DtEnumInfo > EnumMap
Definition: enumDictionary.h:116
XmlEntityTypeUidReaderMap myEntityTypeReadersByUid
Definition: enumLoader.h:200
XmlEntityTypeLevelReaderMap myEntityTypeReadersByLevel
Definition: enumLoader.h:201
std::map< DtString, FilePriorityReaderFcn > FilePriorityReaderMap
Definition: enumLoader.h:187
XmlUidReaderMap myReadersByUid
Definition: enumLoader.h:198
std::pair< int, int > XmlUidRange
Definition: enumLoader.h:189