![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtHeaderParserFactory.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtHeaderParserFactory_H_ 00014 #define DtHeaderParserFactory_H_ 00015 00016 #include <vrvCore/vrvCore.h> 00017 #include <vrvCore/DtDe.h> 00018 #include <vrvUtil/DtVirtualBaseClass.h> 00019 #include <map> 00020 #include <string> 00021 00022 class DtTerrainDbFactory; 00023 00024 namespace makVrv 00025 { 00026 00027 class DtHeaderParserCreator; 00028 class DtHeaderParser; 00029 00032 class DT_DLL_VRVCORE DtHeaderParserFactory : public DtVirtualBaseClass 00033 { 00034 public: 00035 00036 typedef std::map<std::string, DtHeaderParserCreator*> CreatorMap; 00037 typedef std::map<std::string, std::string> FileExtensionMap; 00038 00040 static DtHeaderParserFactory& instance(DtDe& de); 00041 00043 virtual ~DtHeaderParserFactory(); 00044 00046 virtual void addCreator(const std::string& creatorName, 00047 DtHeaderParserCreator* creator); 00048 00050 virtual void mapFileExtensionToHeaderParser(const std::string& extenstion, 00051 const std::string& creatorName); 00052 00054 DtHeaderParser* createHeaderParser(const std::string& filePath); 00055 00057 const CreatorMap& creators() const; 00058 00060 static std::string extractFileExtension( const std::string& fileToOpen ); 00061 00062 protected: 00063 00065 DtHeaderParserFactory(DtDe& de); 00066 00067 DtDe& myDe; 00068 CreatorMap myCreators; 00069 FileExtensionMap myExtenstionMap; 00070 00071 }; 00072 } 00073 00074 #endif 00075