#pragma once #include #include #include // //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 ctx_; zmq::socket_t socket_; std::string host_; //QThread thread_; };