MidlePayQml 0.0.4
MiddlePay QML module
qclientMQTT.hpp
1 #pragma once
8 #include<QDebug>
9 #include <QMqttClient>
10 #include<QJsonValue>
11 #include "client/qwebsocketiodevice.hpp"
12 #include"block/qblock.hpp"
13 
14 namespace qiota{
15 
16  class QCMQTT_EXPORT ResponseMqtt: public QObject
17  {
18  Q_OBJECT
19  public:
20  ResponseMqtt(QMqttSubscription * thesub);
21  public slots:
22  void fill(QMqttMessage msg);
23  void unsubscribe(void);
24  signals:
25  void returned( QJsonValue data );
26  private:
27  QMqttSubscription * sub_;
28 
29  };
30 
31 
32  class QCMQTT_EXPORT ClientMqtt: public QMqttClient
33  {
34 
35  Q_OBJECT
36  public:
37  ClientMqtt(QObject *parent = nullptr);
38 
41 
42  template<qblocks::Output::types outtype>
44  {
45  return get_subscription("outputs/"+qblocks::Output::typesstr[outtype]+"/"+id);
46  }
49  void set_node_address(const QUrl &url){
50  auto node_addr_wss_=url;
51  if(url.scheme()!="wss")
52  {
53  node_addr_wss_.setScheme("wss");
54  node_addr_wss_.setPort(443);
55  node_addr_wss_.setPath("/api/mqtt/v1");
56  }
57  if(node_address_!=node_addr_wss_&&node_addr_wss_.isValid())
58  {
59  node_address_=node_addr_wss_;emit node_address_changed();
60  }
61  }
62 
63  signals:
65  private:
66  void restart(void);
67  void openDevice();
68  QUrl node_address_;
69  quint16 port_;
70  WebSocketIODevice* m_device;
71  };
72 
73 };
Definition: qwebsocketiodevice.hpp:16
Definition: qclientMQTT.hpp:33
ClientMqtt(QObject *parent=nullptr)
ResponseMqtt * get_outputs_by_chain_id(const QString &id)
Definition: qclientMQTT.hpp:43
void node_address_changed()
ResponseMqtt * get_outputs_unlock_condition_address(const QString &condition_address)
ResponseMqtt * get_subscription(const QString &topic)
ResponseMqtt * get_outputs_outputId(const QString &outid)
ResponseMqtt * get_blocks(void)
void set_node_address(const QUrl &url)
Definition: qclientMQTT.hpp:49
Definition: qclientMQTT.hpp:17
void unsubscribe(void)
ResponseMqtt(QMqttSubscription *thesub)
void returned(QJsonValue data)
void fill(QMqttMessage msg)
QBLOCK_EXPORT static const QHash< types, QString > typesstr
Definition: qoutputs.hpp:88
Definition: qbigint.hpp:7
QString scheme() const const
void setScheme(const QString &scheme)