#include "stdafx.h" #include "DeviceHandlerManager.h" #include "IDeviceHandler.h" #include "IDeviceHandlerFactory.h" using namespace DIOS::Dev::Detail::MachineryECOM; DeviceHandlerManager *DeviceHandlerManager::m_instance = nullptr; DeviceHandlerManager::DeviceHandlerManager() { } DeviceHandlerManager::~DeviceHandlerManager() { } DeviceHandlerManager *DeviceHandlerManager::Instance() { if (m_instance == nullptr) { m_instance = new DeviceHandlerManager(); } return m_instance; } void DeviceHandlerManager::Initialize(IDeviceHandlerFactory *factory) { auto collimatorHandler = factory->CreateDeviceHandler(DEVICE_HANDLER_TYPE_COLLIMATOR); collimatorHandler->Initialize(DEVICE_HANDLER_COLLIMATOR); Register(collimatorHandler); } void DeviceHandlerManager::Register(IDeviceHandler *handler) { if (handler && handler->Name() != "") { m_deviceHandlers[handler->Name()] = handler; } } IDeviceHandler *DeviceHandlerManager::Resove(const std::string &name) { if (m_deviceHandlers.find(name) == m_deviceHandlers.end()) { return nullptr; } return m_deviceHandlers[name]; }