![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: DtChannelKeywordObjectFactory.h,v $ $Revision: 1.13 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvCore/vrvCore.h> 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 00018 #include <boost/unordered_map.hpp> 00019 #include <string> 00020 00021 namespace makVrv 00022 { 00023 00024 class DtDe; 00025 class DtChannelKeywordObjectCreator; 00026 class DtChannelKeywordObject; 00027 class DtChannelConfiguration; 00028 00033 class DT_DLL_VRVCORE DtChannelKeywordObjectFactory : public DtVirtualBaseClass 00034 { 00035 public: 00036 00038 static DtChannelKeywordObjectFactory& instance(DtDe& de); 00039 00040 static void registerInstance(DtDe& de, DtChannelKeywordObjectFactory* anInstance); 00041 00043 virtual ~DtChannelKeywordObjectFactory(); 00044 00047 virtual void registerChannelKeywordObjectCreator(const std::string& keyword, 00048 DtChannelKeywordObjectCreator* creator); 00049 00053 virtual DtChannelKeywordObject* createChannelKeywordObject(const std::string& keyword, 00054 const std::string& displayName, const std::string& windowName, 00055 const DtChannelConfiguration& channelConfig ) const; 00056 00057 virtual bool isKeywordRegistered( const std::string& keyword ) const; 00058 00059 protected: 00062 DtChannelKeywordObjectFactory(DtDe& de); 00063 00064 protected: 00065 typedef boost::unordered_map<std::string, DtChannelKeywordObjectCreator*> RegistrationMap; 00066 00067 DtDe& myDe; 00068 RegistrationMap myCreators; 00069 }; 00070 }