culturered_client/TouchScreen/ZMQClient.h
2024-09-07 11:34:44 +08:00

65 lines
1.2 KiB
C++

#pragma once
#include <QObject>
#include <QThread>
#include <zmq.hpp>
//
//class SocketMonitor : public QObject, public zmq::monitor_t {
// Q_OBJECT
//
//public:
// SocketMonitor(class ZMQClient* client);
// ~SocketMonitor();
//
// void on_event_connected(const zmq_event_t& event_, const char* addr_) override;
// void on_event_disconnected(const zmq_event_t& event_, const char* addr_) override;
//
//
//Q_SIGNALS:
// void Connectd();
// void Disconnectd();
//
//public:
// void doWork(QString address);
// void Stop() {
// abort();
// }
//
//
//private:
// class ZMQClient* client_{ nullptr };
//};
class ZMQClient : public QObject {
Q_OBJECT
public:
explicit ZMQClient(QObject* parent = nullptr);
~ZMQClient() override;
bool ConnectToServer(const QString& address);
bool Send(const QString& message);
const zmq::socket_t& GetSocket() const {
return socket_;
}
zmq::socket_t& GetSocket() {
return socket_;
}
Q_SIGNALS:
void MessageReceivered(const QString& message);
void Connectd();
void Disconnectd();
void operate(QString);
void StopMino();
private:
std::shared_ptr<zmq::context_t> ctx_;
zmq::socket_t socket_;
std::string host_;
//QThread thread_;
};