00001 /*========================================================================= 00002 00003 Program: BlueBerry Platform 00004 Language: C++ 00005 Date: $Date: 2010-01-16 19:57:43 +0100 (Sa, 16 Jan 2010) $ 00006 Version: $Revision: 21070 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef MITKSPACENAVIGATORREGISTRY_H_ 00019 #define MITKSPACENAVIGATORREGISTRY_H_ 00020 00021 #include <Poco/HashMap.h> 00022 #include <string> 00023 #include <vector> 00024 00025 #include <mitkIInputDeviceDescriptor.h> 00026 #include <mitkIInputDeviceRegistry.h> 00027 00028 namespace mitk 00029 { 00036 class InputDeviceRegistry : public IInputDeviceRegistry 00037 { 00038 public: 00039 00040 bool IsA(const std::type_info& type); 00041 const std::type_info& GetType() const; 00042 00043 // easier maintenance 00044 typedef IInputDeviceDescriptor::Pointer InputDeviceDescriptorPtr; 00045 00046 InputDeviceRegistry(); 00047 ~InputDeviceRegistry(); 00048 00052 InputDeviceDescriptorPtr Find(const std::string& id) const; 00053 00057 std::vector<InputDeviceDescriptorPtr> GetInputDevices() const; 00058 00059 protected: 00060 00061 private: 00062 Poco::HashMap<std::string, InputDeviceDescriptorPtr> m_ListRegisteredDevices; 00063 00064 }; // end class InputDeviceRegistry 00065 } // end namespace mitk 00066 00067 #endif /*MITKSPACENAVIGATORREGISTRY_H_*/