00001 #ifndef TESTLIBRARYIMPL_H
00002 #define TESTLIBRARYIMPL_H
00003
00004 #include "ipc/TestLibrary.h"
00005 #include <boost/utility.hpp>
00006 #include <ipc/object.h>
00007
00008 namespace SctCalibrationController {
00009 using namespace Ipc;
00010
00011 class TestLibraryImpl : public TestLibrary {
00012 public:
00013 typedef Sct_CalibrationController::TestRequest_ptr(*FunctionPointer)();
00014 static bool registerStaticFactoryMethodForTest(const std::string & name, const FunctionPointer f);
00015 private:
00016 typedef std::map<std::string, FunctionPointer> StringFunctionPtrMap;
00017 static StringFunctionPtrMap & stringFunctionPtrMap() { static StringFunctionPtrMap ans; return ans; };
00018 public:
00019
00020
00021 virtual Sct_CalibrationController::TestRequest_ptr getTestRequestByName(const char * name);
00022 virtual Sct_CalibrationController::TestLibrary::Strings* getTestNames();
00023 static Sct_CalibrationController::TestLibrary_ptr instance();
00024 private:
00025 TestLibraryImpl();
00026 };
00027
00028 }
00029
00030 #endif //TESTLIBRARYIMPL_H