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);
69 virtual void addInterestInEnum(
DtEnumUid uid);
91 virtual void unregisterFileLoader(
const DtString& fileExt);
97 virtual void unregisterFilePriorityReader(
const DtString& fileExt);
103 virtual void unregisterUidEntryReader(
DtEnumUid uid);
108 virtual void registerUidRangeEntryReader(
DtEnumUid lowerUid,
112 virtual void unregisterUidRangeEntryReader(
DtEnumUid lowerUid,
116 virtual void registerEntityTypeUidEntryReader(
DtEnumUid uid,
120 virtual void unregisterEntityTypeUidEntryReader(
DtEnumUid uid);
143 virtual void registerDefaultLoaders();
151 virtual unsigned readPriorityFromXml(
const DtFilename& fn);
171 virtual void setEntityTypeLevel(
unsigned lvl,
int lowerVal,
int upperVal,
176 std::list<DtEntityTypeRange>& applics)
const;
179 virtual int xmlCharToInt(
const xmlChar* c)
const;
std::map< DtString, FileLoaderFcn > FileLoaderMap
Definition: enumLoader.h:183
DtFilename myCurrFilename
Definition: enumLoader.h:202
FilePriorityReaderMap myFilePriorityReaders
Definition: enumLoader.h:194
std::map< DtEntityTypeField, XmlEntityTypeEntryReaderFcn > XmlEntityTypeLevelReaderMap
Definition: enumLoader.h:189
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:196
DtEnumDictionary * myDict
Definition: enumLoader.h:200
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:188
FileLoaderMap myFileLoaders
Definition: enumLoader.h:193
bool myDefaultLoadersRegistered
Definition: enumLoader.h:191
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:204
xmlNode * xmlNodePtr
Definition: DtLightPointTable.h:20
std::map< XmlUidRange, XmlEntryReaderFcn > XmlUidRangeReaderMap
Definition: enumLoader.h:187
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:185
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:197
XmlEntityTypeLevelReaderMap myEntityTypeReadersByLevel
Definition: enumLoader.h:198
std::map< DtString, FilePriorityReaderFcn > FilePriorityReaderMap
Definition: enumLoader.h:184
XmlUidReaderMap myReadersByUid
Definition: enumLoader.h:195
std::pair< int, int > XmlUidRange
Definition: enumLoader.h:186