DeviceHandlerManager.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "stdafx.h"
  2. #include "DeviceHandlerManager.h"
  3. #include "IDeviceHandler.h"
  4. #include "IDeviceHandlerFactory.h"
  5. using namespace DIOS::Dev::Detail::MachineryECOM;
  6. DeviceHandlerManager *DeviceHandlerManager::m_instance = nullptr;
  7. DeviceHandlerManager::DeviceHandlerManager()
  8. {
  9. }
  10. DeviceHandlerManager::~DeviceHandlerManager()
  11. {
  12. }
  13. DeviceHandlerManager *DeviceHandlerManager::Instance()
  14. {
  15. if (m_instance == nullptr)
  16. {
  17. m_instance = new DeviceHandlerManager();
  18. }
  19. return m_instance;
  20. }
  21. void DeviceHandlerManager::Initialize(IDeviceHandlerFactory *factory)
  22. {
  23. auto collimatorHandler = factory->CreateDeviceHandler(DEVICE_HANDLER_TYPE_COLLIMATOR);
  24. collimatorHandler->Initialize(DEVICE_HANDLER_COLLIMATOR);
  25. Register(collimatorHandler);
  26. }
  27. void DeviceHandlerManager::Register(IDeviceHandler *handler)
  28. {
  29. if (handler && handler->Name() != "")
  30. {
  31. m_deviceHandlers[handler->Name()] = handler;
  32. }
  33. }
  34. IDeviceHandler *DeviceHandlerManager::Resove(const std::string &name)
  35. {
  36. if (m_deviceHandlers.find(name) == m_deviceHandlers.end())
  37. {
  38. return nullptr;
  39. }
  40. return m_deviceHandlers[name];
  41. }