ExamHandlerFactory.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "stdafx.h"
  2. #include "ExamHandlerFactory.h"
  3. #include "DoNothingHandler.h"
  4. #include "TomoExamHandler.h"
  5. #include "NormalExamHandler.h"
  6. #include "CalibrationHandler.h"
  7. #include "MotionTestHandler.h"
  8. #include "ResetHandler.h"
  9. #include "SelfTestHandler.h"
  10. #include "ParkingHandler.h"
  11. using namespace DIOS::Dev::Detail::MachineryECOM;
  12. ExamHandlerFactory *ExamHandlerFactory::m_instance = nullptr;
  13. ExamHandlerFactory::ExamHandlerFactory()
  14. {
  15. }
  16. ExamHandlerFactory::~ExamHandlerFactory()
  17. {
  18. }
  19. ExamHandlerFactory *ExamHandlerFactory::Instance()
  20. {
  21. if (m_instance == nullptr)
  22. {
  23. m_instance = new ExamHandlerFactory();
  24. }
  25. return m_instance;
  26. }
  27. IExamHandler *ExamHandlerFactory::CreateExamHandler(EXAM_HANDLER_TYPE type)
  28. {
  29. IExamHandler *ret = nullptr;
  30. switch (type)
  31. {
  32. case EXAM_HANDLER_NONE:
  33. ret = new DoNothingHandler();
  34. break;
  35. case EXAM_HANDLER_RAD:
  36. ret = new NormalExamHandler();
  37. break;
  38. case EXAM_HANDLER_TOMO:
  39. ret = new TomoExamHandler();
  40. break;
  41. case EXAM_HANDLER_RESET:
  42. ret = new ResetHandler();
  43. break;
  44. case EXAM_HANDLER_CALIBRATION:
  45. ret = new CalibrationHandler();
  46. break;
  47. case EXAM_HANDLER_MOTIONTEST:
  48. ret = new MotionTestHandler();
  49. break;
  50. case EXAM_HANDLER_PARKING:
  51. ret = new ParkingHandler();
  52. break;
  53. case EXAM_HANDLER_SELFTEST:
  54. ret = new SelfTestHandler();
  55. break;
  56. default:
  57. break;
  58. }
  59. return ret;
  60. }