![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/vrvCore.h> 00015 #include <vrvCore/DtStateVisualizer.h> 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 #include <vrvUtil/DtSignalConnectionManager.h> 00018 #include <boost/unordered_map.hpp> 00019 00020 namespace makVrv 00021 { 00022 class DtDe; 00023 class DtVisualizerSchema; 00024 00026 class DT_DLL_VRVCORE DtVisualizerSchemaManager : public DtVirtualBaseClass 00027 { 00028 public: 00029 00031 typedef boost::unordered_map<std::string, 00032 const DtVisualizerSchema*> SchemaMap; 00033 00035 typedef boost::unordered_map<unsigned int, 00036 SchemaMap> TypeSchemaMap; 00037 00039 static DtVisualizerSchemaManager& instance(DtDe&); 00040 00042 virtual ~DtVisualizerSchemaManager(); 00043 00045 void registerVisualizerSchema(DtStateVisualizer::Type type, 00046 const DtVisualizerSchema* entry); 00047 00051 const DtVisualizerSchema* findSchemaEntry( DtStateVisualizer::Type type, 00052 const std::string& schemaName ) const; 00053 00056 const DtVisualizerSchema* findSchemaEntry( 00057 const std::string& schemaName ) const; 00058 00060 void getSchemaEntriesForType(DtStateVisualizer::Type type, 00061 std::vector<const DtVisualizerSchema*>& entries ) const; 00062 00064 void loadDefaults(); 00065 00068 static std::string newSchemaNameFromOld(const std::string& oldSchemaName); 00069 00070 protected: 00071 00073 template <typename ManagerClass> 00074 friend ManagerClass& defaultManagerInstanceFunction(DtDe&,bool); 00075 00077 template <typename ManagerClass> 00078 friend void defaultManagerRegisterInstanceFunction(DtDe&, ManagerClass*); 00079 00081 DtVisualizerSchemaManager(DtDe&); 00082 00083 protected: 00084 00085 TypeSchemaMap mySchemaMap; 00086 DtSignalConnectionManager myConnections; 00087 }; 00088 } 00089