js8call/JS8_Main/MessageClient.h
Chris-AC9KH 356bdc0f50 Code cleanup - move loose source and header files in source tree to group folders
Rename all header files with .h extension
Fix function declaration in HamlibTransceiver.h that overrode member function but was not marked override
Remove unused variable in Modulator.cpp
Remove unused files from source tree
Remove duplicate LazyFillComboBox files
Reformat codebase to LLVM C++ standard
2026-01-02 16:46:38 -06:00

55 lines
1.5 KiB
C++

#ifndef MESSAGE_CLIENT_HPP__
#define MESSAGE_CLIENT_HPP__
#include "JS8_Include/pimpl_h.h"
#include "Message.h"
#include "Radio.h"
#include <QByteArray>
#include <QHostAddress>
#include <QObject>
#include <QString>
//
// MessageClient - Manage messages sent and replies received from a
// matching server (MessageServer) at the other end of
// the wire
//
//
// Each outgoing message type is a Qt slot
//
class MessageClient : public QObject {
Q_OBJECT
public:
// instantiate and initiate a host lookup on the server;
// messages will be queued until a server host lookup is complete
MessageClient(QString const &server_name, quint16 server_port,
QObject *parent = nullptr);
// query server details
QHostAddress server_host() const;
quint16 server_port() const;
// initiate a new server host lookup or is the server name is empty
// the sending of messages is disabled
Q_SLOT void set_server_name(QString const &server_name = {});
// change the server port messages are sent to
Q_SLOT void set_server_port(quint16 server_port = 0u);
// this slot is used to send an arbitrary message
Q_SLOT void send(Message const &message);
// this signal is emitted when a message is received
Q_SIGNAL void message(Message const &message);
// this signal is emitted when network errors occur or if a host
// lookup fails
Q_SIGNAL void error(QString const &) const;
private:
class impl;
pimpl<impl> m_;
};
#endif