ExamHandlerManager.h 927 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. namespace DIOS::Dev::Detail::MachineryECOM
  3. {
  4. const std::string DONOTHING_EXAMHANDLER = "DoNothing_ExamHandler";
  5. class IExamHandler;
  6. class IPositionManager;
  7. class IMotionModelManager;
  8. class IExamHandlerFactory;
  9. class ExamHandlerManager
  10. {
  11. public:
  12. ExamHandlerManager();
  13. ~ExamHandlerManager();
  14. public:
  15. static ExamHandlerManager *Instance();
  16. public:
  17. void Initialize(
  18. IExamHandlerFactory *factory,
  19. IPositionManager *positionManager,
  20. IMotionModelManager *modelManager,
  21. const std::map<std::string, int> &handlerList);
  22. void RegisterHandler(const std::string &name, IExamHandler *handler);
  23. IExamHandler *GetHandler(const std::string &name);
  24. IExamHandler * ChangeCurrentHandler(const std::string &name);
  25. IExamHandler * GetCurrentHandler();
  26. private:
  27. static ExamHandlerManager *m_instance;
  28. IExamHandler *m_currentHandler;
  29. std::map<std::string, IExamHandler *> m_handlers;
  30. };
  31. }