Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __cmtkTestFunctionMap_h_included_
00032 #define __cmtkTestFunctionMap_h_included_
00033
00034 #include <cmtkconfig.h>
00035
00036 #include <string>
00037 #include <map>
00038 #include <iostream>
00039
00040 namespace
00041 cmtk
00042 {
00043
00046
00048 class TestFunctionMap
00049 {
00050 public:
00052 typedef int (*TestFunctionPtr)();
00053
00055 void AddTest( const std::string& testName, TestFunctionPtr testFunction )
00056 {
00057 this->m_Map[testName] = testFunction;
00058 }
00059
00061 int RunTestByName( const std::string& testName )
00062 {
00063 MapType::iterator test = this->m_Map.find( testName );
00064 if ( test == this->m_Map.end() )
00065 {
00066 std::cerr << "Test '" << testName << "' not found.";
00067 return 2;
00068 }
00069 return test->second();
00070 }
00071
00072 private:
00074 typedef std::map< std::string, TestFunctionPtr > MapType;
00075
00077 MapType m_Map;
00078 };
00079
00081
00082 }
00083
00084 #endif // #ifndef __cmtkTestFunctionMap_h_included_