#include "stdafx.h" #include "ExamHandlerFactory.h" #include "DoNothingHandler.h" #include "TomoExamHandler.h" #include "NormalExamHandler.h" #include "CalibrationHandler.h" #include "MotionTestHandler.h" #include "ResetHandler.h" #include "SelfTestHandler.h" #include "ParkingHandler.h" using namespace DIOS::Dev::Detail::MachineryECOM; ExamHandlerFactory *ExamHandlerFactory::m_instance = nullptr; ExamHandlerFactory::ExamHandlerFactory() { } ExamHandlerFactory::~ExamHandlerFactory() { } ExamHandlerFactory *ExamHandlerFactory::Instance() { if (m_instance == nullptr) { m_instance = new ExamHandlerFactory(); } return m_instance; } IExamHandler *ExamHandlerFactory::CreateExamHandler(EXAM_HANDLER_TYPE type) { IExamHandler *ret = nullptr; switch (type) { case EXAM_HANDLER_NONE: ret = new DoNothingHandler(); break; case EXAM_HANDLER_RAD: ret = new NormalExamHandler(); break; case EXAM_HANDLER_TOMO: ret = new TomoExamHandler(); break; case EXAM_HANDLER_RESET: ret = new ResetHandler(); break; case EXAM_HANDLER_CALIBRATION: ret = new CalibrationHandler(); break; case EXAM_HANDLER_MOTIONTEST: ret = new MotionTestHandler(); break; case EXAM_HANDLER_PARKING: ret = new ParkingHandler(); break; case EXAM_HANDLER_SELFTEST: ret = new SelfTestHandler(); break; default: break; } return ret; }