DataManager.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "DataManager.h"
  2. #include "Define.h"
  3. #include "DataManagerProxy.h"
  4. #include "DataSubscribe.h"
  5. #include "DataConsumer.h"
  6. #include <QDebug>
  7. DataManager::DataManager() {
  8. }
  9. DataManager::~DataManager()
  10. {
  11. /*for(auto it = consumerMap.begin(); it != consumerMap.end(); ++it){
  12. delete it.value();
  13. }*/
  14. }
  15. // void DataManager::OnData(std::string key, QVariant val)
  16. // {
  17. // //consumerMap[key]->OnData(key, val);
  18. // }
  19. void DataManager::Startup(Config& config)
  20. {
  21. //Config config;
  22. DataManagerProxy dmp;
  23. auto lstModules = dmp.loadModuleInfos(config);
  24. for(auto itModules = lstModules.begin(); itModules != lstModules.end(); itModules++){
  25. for(auto itr = itModules->consumers.begin(); itr != itModules->consumers.end(); ++itr){
  26. //ScopedPointer<DataConsumer> consumer {new DataConsumer()};
  27. DataConsumer * consumer = new DataConsumer();
  28. ConsumerInfo ci = *itr;
  29. consumer->Setup(ci);
  30. consumerMap.insert(QString(itr->SubscribeName.c_str()),consumer);
  31. }
  32. for(auto itr = itModules->modules.begin();itr!= itModules->modules.end();++itr)
  33. {
  34. ModuleInfo mi = *itr;
  35. if(consumerMap.contains(itr->Name.c_str())){
  36. //QScopedPointer<DataSubscribe> subscriber(new DataSubscribe());
  37. DataSubscribe* subscriber = new DataSubscribe();
  38. auto mapIt = consumerMap.find(itr->Name.c_str());
  39. while(mapIt != consumerMap.end() && mapIt.key() == itr->Name.c_str()){
  40. subscriber->regConsumer(mapIt.value());
  41. }
  42. subscriber->Setup(mi);
  43. //subscriber->Run();
  44. subscribers.append(subscriber);
  45. }
  46. }
  47. }
  48. }