LogicDeviceManager.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "stdafx.h"
  2. #include "LogicDeviceManager.h"
  3. //#include "DevTree.h"
  4. using namespace DIOS::Dev::Detail::MachineryECOM;
  5. LogicDeviceManager *LogicDeviceManager::m_instance = nullptr;
  6. LogicDeviceManager::LogicDeviceManager()
  7. {
  8. }
  9. LogicDeviceManager::~LogicDeviceManager()
  10. {
  11. }
  12. LogicDeviceManager *LogicDeviceManager::Instance()
  13. {
  14. if (m_instance == nullptr)
  15. {
  16. m_instance = new LogicDeviceManager();
  17. }
  18. return m_instance;
  19. }
  20. IOLogicUnit*LogicDeviceManager::Resove(const std::string &deviceTypeName)
  21. {
  22. if (m_logicUnits.find(deviceTypeName) == m_logicUnits.end())
  23. {
  24. return nullptr;
  25. }
  26. return m_logicUnits[deviceTypeName];
  27. }
  28. bool LogicDeviceManager::LoadLogicDevice(const std::string& deviceTypeName, IOLogicUnit* logicUint)
  29. {
  30. if (logicUint != nullptr)
  31. {
  32. /*logicUint->SetDrvDPC(driver);
  33. if (tree)
  34. {
  35. IOLogicUnit*pret = (IOLogicUnit*)logicUint;
  36. tree->Add((PVOID)pret, TYPE_DEVICE);
  37. }*/
  38. m_logicUnits[deviceTypeName] = logicUint;
  39. }
  40. return logicUint != nullptr;
  41. }