Browse Source

修改td订阅消息广播映射问题

ZenZ 1 year ago
parent
commit
1f512d3ac4
2 changed files with 15 additions and 3 deletions
  1. 14 3
      DataManagerMain/DataSubscribe.cpp
  2. 1 0
      DataManagerMain/DataSubscribe.h

+ 14 - 3
DataManagerMain/DataSubscribe.cpp

@@ -35,9 +35,13 @@ void DataSubscribe::Setup(ModuleInfo &mi)
     {
         Publisher* runable = dynamic_cast<Publisher*>(pModule);
         //runable->shares(shares);
-        for(auto it =  dataConsumerList.begin(); it != dataConsumerList.end(); it++){
-            connect(runable, SIGNAL(pubData(const QString& ,const QString& ,const QVariant& )), *it, SLOT(OnData(const QString& ,const QString& ,const QVariant&)));
-        }
+
+        connect(runable, SIGNAL(pubData(const QString& ,const QString& ,const QVariant& )), this, SLOT(OnData(const QString& ,const QString& ,const QVariant&)));
+        // ------------- 由于tdengine订阅模块是单例运行,消息发送是广播发送 -------------
+        // for(auto it =  dataConsumerList.begin(); it != dataConsumerList.end(); it++){
+        //     connect(runable, SIGNAL(pubData(const QString& ,const QString& ,const QVariant& )), *it, SLOT(OnData(const QString& ,const QString& ,const QVariant&)));
+        // }
+        // ______________
         runable->Run(mi);
     }
 }
@@ -59,6 +63,13 @@ void DataSubscribe::regConsumer(DataConsumer *dc)
     dataConsumerList.append(dc);
 }
 
+void DataSubscribe::OnData(const QString &user, const QString &key, const QVariant &val)
+{
+    for(auto it =  dataConsumerList.begin(); it != dataConsumerList.end(); it++){
+        (*it)->OnData(user, key, val);
+    }
+}
+
 
 
 

+ 1 - 0
DataManagerMain/DataSubscribe.h

@@ -20,6 +20,7 @@ public:
 
     virtual void regConsumer(DataConsumer* dc) ;
 
+    void OnData(const QString& user, const QString& key, const QVariant& val);
     //void OnData(QString, QString, QVariant);
 // private:
 //     virtual void setLoader(QLibrary*);