MechnicalComponentFactory.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "IMechnicalComponentFactory.h"
  3. namespace DIOS::Dev::Detail::MachineryECOM
  4. {
  5. class MechnicalComponentFactory : public IMechnicalComponentFactory
  6. {
  7. public:
  8. MechnicalComponentFactory();
  9. ~MechnicalComponentFactory();
  10. public:
  11. static IMechnicalComponentFactory *Instance();
  12. public:
  13. virtual IComponentController *CreateController(COMPONENT_CONTROLLER_TYPE type, const std::string &name) override;
  14. private:
  15. IComponentController *CreateDetectorHeightController(const std::string &name);
  16. IComponentController *CreateTubeAngleController(const std::string &name);
  17. IComponentController *CreateTubeHeightController(const std::string &name);
  18. IComponentController *CreateSensorADController(const std::string &name);
  19. IComponentController *CreateSensorEncoderController(const std::string &name);
  20. IComponentController *CreateExposureController(const std::string &name);
  21. IComponentController *CreateLandmarkController(const std::string &name);
  22. IComponentController *CreateCollimatorController(const std::string &name);
  23. IComponentController *CreateCArmTubeCircularController(const std::string &name);
  24. IComponentController *CreateCArmTubeSwingController(const std::string &name);
  25. IComponentController *CreateFluoroSwitchController(const std::string& name);
  26. IComponentController* CreateTubeLineSwitchController(const std::string& name);
  27. IComponentController* CreateTubeHorizontalController(const std::string& name);
  28. private:
  29. std::map<std::string, IComponentController *> m_detectorHeightControllers;
  30. std::map<std::string, IComponentController *> m_tubeAngleControllers;
  31. std::map<std::string, IComponentController *> m_tubeHeightControllers;
  32. std::map<std::string, IComponentController *> m_sensorADControllers;
  33. std::map<std::string, IComponentController *> m_sensorEncoderControllers;
  34. std::map<std::string, IComponentController *> m_exposureControllers;
  35. std::map<std::string, IComponentController *> m_landmarkControllers;
  36. std::map<std::string, IComponentController*> m_collimatorControllers;
  37. std::map<std::string, IComponentController*> m_tubeCircularControllers;
  38. std::map<std::string, IComponentController*> m_tubeSwingControllers;
  39. std::map<std::string, IComponentController*> m_fluoroSwitchControllers;
  40. std::map<std::string, IComponentController*> m_tubeLineSwitchControllers;
  41. std::map<std::string, IComponentController*> m_tubeHorizontalControllers;
  42. static MechnicalComponentFactory *m_instance;
  43. };
  44. }