17 #include <libxml/xmlmemory.h>
18 #include <libxml/parser.h>
19 #include <boost/function.hpp>
35 typedef boost::function<bool(const DtFilename&, DtEnumDictionary&)>
FileLoaderFcn;
51 static void setCreator(EnumLoaderCreator creator);
58 virtual bool loadFromFiles(
const std::vector<DtFilename>& filenames,
DtEnumDictionary& dict);
66 virtual void addInterestInEnum(
DtEnumUid uid);
88 virtual void unregisterFileLoader(
const DtString& fileExt);
94 virtual void unregisterUidEntryReader(
DtEnumUid uid);
99 virtual void registerUidRangeEntryReader(
DtEnumUid lowerUid,
103 virtual void unregisterUidRangeEntryReader(
DtEnumUid lowerUid,
107 virtual void registerEntityTypeUidEntryReader(
DtEnumUid uid,
111 virtual void unregisterEntityTypeUidEntryReader(
DtEnumUid uid);
134 virtual void registerDefaultLoaders();
158 virtual void setEntityTypeLevel(
unsigned lvl,
int lowerVal,
int upperVal,
163 std::list<DtEntityTypeRange>& applics)
const;
166 virtual int xmlCharToInt(
const xmlChar* c)
const;
std::map< DtString, FileLoaderFcn > FileLoaderMap
Definition: enumLoader.h:170
DtFilename myCurrFilename
Definition: enumLoader.h:187
std::map< DtEntityTypeField, XmlEntityTypeEntryReaderFcn > XmlEntityTypeLevelReaderMap
Definition: enumLoader.h:175
Maintains a list of enumerations read in from files.
Definition: enumDictionary.h:90
XmlUidRangeReaderMap myReadersByUidRange
Definition: enumLoader.h:181
DtEnumDictionary * myDict
Definition: enumLoader.h:185
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:41
std::map< int, XmlEntityTypeEntryReaderFcn > XmlEntityTypeUidReaderMap
Definition: enumLoader.h:174
FileLoaderMap myFileLoaders
Definition: enumLoader.h:179
bool myDefaultLoadersRegistered
Definition: enumLoader.h:177
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:189
xmlNode * xmlNodePtr
Definition: DtLightPointTable.h:20
std::map< XmlUidRange, XmlEntryReaderFcn > XmlUidRangeReaderMap
Definition: enumLoader.h:173
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.
Definition: enumLoader.h:32
std::map< int, XmlEntryReaderFcn > XmlUidReaderMap
Definition: enumLoader.h:171
#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:38
std::map< int, DtEnumInfo > EnumMap
Definition: enumDictionary.h:108
XmlEntityTypeUidReaderMap myEntityTypeReadersByUid
Definition: enumLoader.h:182
XmlEntityTypeLevelReaderMap myEntityTypeReadersByLevel
Definition: enumLoader.h:183
XmlUidReaderMap myReadersByUid
Definition: enumLoader.h:180
std::pair< int, int > XmlUidRange
Definition: enumLoader.h:172