#pragma once namespace DIOS::Dev::Detail::MachineryECOM { class IDeviceHandler; class IDeviceHandlerFactory; const std::string DEVICE_HANDLER_COLLIMATOR = "DEVICE_HANDLER_COLLIMATOR"; class DeviceHandlerManager { public: DeviceHandlerManager(); ~DeviceHandlerManager(); public: static DeviceHandlerManager *Instance(); void Initialize(IDeviceHandlerFactory *factory); void Register(IDeviceHandler *handler); IDeviceHandler *Resove(const std::string &name); private: static DeviceHandlerManager *m_instance; std::map m_deviceHandlers; }; }