TDengineSubscriber.h 935 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include "TDengineSubscriber_global.h"
  3. #include "Publisher.h"
  4. #include "TDengineClient.h"
  5. #include <QQueue>
  6. #include <QMutex>
  7. #include <QWaitCondition>
  8. struct Msg{
  9. QString key;
  10. QString val;
  11. };
  12. class TDENGINESUBSCRIBER_EXPORT TDengineSubscriber : public Publisher
  13. {
  14. Q_OBJECT
  15. public:
  16. TDengineSubscriber();
  17. ~TDengineSubscriber();
  18. // virtual void shares(SharedData * share);
  19. virtual void Run();
  20. virtual void setLoader(QLibrary*);
  21. void enqueue(const QString& key,const QString& val);
  22. protected:
  23. virtual void run();
  24. signals:
  25. void pubData(const QString& ,const QString& ,const QVariant&);
  26. private:
  27. TDengineClient* tdengine = nullptr;
  28. QMutex mutex;
  29. QWaitCondition cond;
  30. QQueue<Msg> msgQueue;
  31. };
  32. extern "C" {//一定要添加上
  33. TDENGINESUBSCRIBER_EXPORT Publisher* instance();
  34. TDENGINESUBSCRIBER_EXPORT void destroy(Publisher*);
  35. }