QtPdCom
1.3.3
|
PdCom::Process implementation for Qt. More...
#include <Process.h>
Classes | |
struct | Impl |
Public Types | |
enum | SslCaMode { SslCaMode::NoTLS, SslCaMode::DefaultCAs, SslCaMode::CustomCAs, SslCaMode::IgnoreCertificate } |
enum | ConnectionState { Disconnected, Connecting, Connected, ConnectError, ConnectedError } |
State of the process connection. More... | |
Signals | |
void | processConnected () |
Connection established. More... | |
void | disconnected () |
Disconnected gracefully. More... | |
void | error () |
Connection error. More... | |
void | broadcastReceived (const QString &message, const QString &attr, std::uint64_t time_ns, const QString &user) |
void | connectionStatusChanged () |
void | sslCaModeChanged () |
Public Member Functions | |
Process (QObject *parent=nullptr) | |
Constructor. More... | |
virtual | ~Process () |
Destructor. More... | |
void | setApplicationName (const QString &) |
Sets the application name. More... | |
QString | getApplicationName () const |
Q_INVOKABLE void | connectToHost (const QString &, quint16=2345) |
Starts to connect to a process. More... | |
Q_INVOKABLE void | disconnectFromHost () |
Disconnects from a process. More... | |
Q_ENUM (ConnectionState) | |
ConnectionState | getConnectionState () const |
bool | isConnected () const |
const QString & | getErrorString () const |
QString | getPeerName () const |
QUrl | getUrl () const |
int | getPort () const |
QString | getHost () const |
Q_INVOKABLE void | sendBroadcast (const QString &, const QString &attr="text") |
Send a broadcast message. More... | |
quint64 | getRxBytes () const |
quint64 | getTxBytes () const |
QFuture< PdCom::Variable > | find (const QString &) |
Find a Variable. More... | |
QFuture< VariableList > | list (const QString &="") |
Wrapper function for Process::list. More... | |
QFuture< void > | pingQt () |
QFuture< std::vector< PdCom::ClientStatistics > > | getClientStatisticsQt () |
template<class Class , class Function > | |
QFutureWatcher< PdCom::Variable > & | find (const QString &path, Class *obj, Function &&callback) |
Also find a Variable. More... | |
template<class Class , class Function > | |
QFutureWatcher< VariableList > & | list (const QString &path, Class *obj, Function &&callback) |
template<class Class , class Function > | |
QFutureWatcher< void > & | ping (Class *obj, Function &&callback) |
template<class Class , class Function > | |
QFutureWatcher< std::vector< PdCom::ClientStatistics > > & | getClientStatistics (Class *obj, Function &&callback) |
void | setCaMode (SslCaMode mode) |
Set Traffic Encryption mode. More... | |
SslCaMode | getCaMode () const |
Get Traffic Encryption mode. More... | |
void | setClientCertificate (const QSslCertificate &cert, const QSslKey &key) |
Provide a client certificate. More... | |
void | setCustomCAs (QList< QSslCertificate > cas) |
Set list of trusted Certificate Authorities. More... | |
PdCom::MessageManagerBase * | getMessageManager () const |
void | setLoginManager (LoginManager *lm) |
Set the Login Manager. More... | |
LoginManager * | getLoginManager () const |
Static Public Member Functions | |
static QtPdCom::Process * | getDefaultProcess () |
static void | setDefaultProcess (QtPdCom::Process *) |
Set default process "manually". More... | |
Properties | |
bool | connected |
The process is connected and ready. More... | |
ConnectionState | connectionState |
SslCaMode | sslCaMode |
int | port |
QString | host |
QUrl | url |
QString | applicationName |
QtPdCom::LoginManager | loginManager |
Private Slots | |
void | socketConnected () |
Socket connection established. More... | |
void | socketDisconnected () |
Socket disconnected. More... | |
void | socketError () |
There was a socket error. More... | |
void | socketRead () |
The socket has new data to read. More... | |
Private Member Functions | |
std::string | applicationName () const override |
Virtual from PdCom::Process. More... | |
std::string | hostname () const override |
int | read (char *, int) override |
Read data from the socket. More... | |
void | write (const char *, size_t) override |
Sends data via the socket. More... | |
void | flush () override |
Flushed the socket. More... | |
void | connected () override |
void | broadcastReply (const std::string &message, const std::string &attr, std::chrono::nanoseconds time_ns, const std::string &user) override |
Broadcast Reply. More... | |
void | pingReply () override |
Ping Reply. More... | |
void | findReply (PdCom::Variable const &var) override |
void | listReply (std::vector< PdCom::Variable > vars, std::vector< std::string > dirs) override |
void | clientStatisticsReply (std::vector< PdCom::ClientStatistics > statistics) override |
void | reset () |
Resets the PdCom process. More... | |
bool | disconnect (const char *signal=0, const QObject *receiver=0, const char *method=0) |
Disconnect method inherited from QObject. More... | |
Private Attributes | |
struct Q_DECL_HIDDEN | Impl |
std::unique_ptr< Impl > | impl |
PdCom::Process implementation for Qt.
|
strong |
Process::Process | ( | QObject * | parent = nullptr | ) |
Constructor.
|
virtual |
Destructor.
References disconnectFromHost(), impl, and reset().
|
overrideprivate |
Virtual from PdCom::Process.
|
signal |
Referenced by QtPdCom::BroadcastModel::connectProcess().
|
overrideprivate |
Broadcast Reply.
|
overrideprivate |
|
overrideprivate |
|
signal |
Referenced by QtPdCom::Process::Impl::setConnectionState().
void Process::connectToHost | ( | const QString & | address, |
quint16 | port = 2345 |
||
) |
|
private |
Disconnect method inherited from QObject.
This is made private, to avoid confusion.
signal | Signal. |
receiver | Receiver. |
method | Method. |
|
signal |
Disconnected gracefully.
This is only emitted, after the user called disconnectFromHost().
void Process::disconnectFromHost | ( | ) |
Disconnects from a process.
Referenced by ~Process().
|
signal |
Connection error.
This is emitted after a connection error or when the connection was closed due to a parser error.
QFuture< PdCom::Variable > Process::find | ( | const QString & | path | ) |
Find a Variable.
Wrapper function for Process::findVariable.
Finding a variable is asynchronous in general. If you need to write to a variable, a variable object is needed. To write a variable with a single call you can use futures and a lambda function. See the example in the overloaded method find(const QString&, Class *, Function&&).
Referenced by find().
|
inline |
Also find a Variable.
Here, a FutureWatcher is created on your behalf. Callback can be one of
The obj reference is needed to use it as a parent for the watcher and to make the connections disconnect automatically when the Process or the object itself goes away.
Below is an example of how to make use of a lambda function to find a variable and write to it once it is found:
path | Variable to find. |
obj | QObject-derived class. |
callback | Callback which receives the result. |
References find().
|
overrideprivate |
|
overrideprivate |
Flushed the socket.
QString Process::getApplicationName | ( | ) | const |
References impl.
Process::SslCaMode Process::getCaMode | ( | ) | const |
Get Traffic Encryption mode.
|
inline |
References getClientStatisticsQt().
QFuture< std::vector< PdCom::ClientStatistics > > QtPdCom::Process::getClientStatisticsQt | ( | ) |
Referenced by getClientStatistics().
Process::ConnectionState Process::getConnectionState | ( | ) | const |
|
static |
References QtPdCom::Process::Impl::defaultProcess.
const QString & Process::getErrorString | ( | ) | const |
QString Process::getHost | ( | ) | const |
QtPdCom::LoginManager * Process::getLoginManager | ( | ) | const |
References QtPdCom::LoginManagerPrivate::q_ptr.
PdCom::MessageManagerBase * Process::getMessageManager | ( | ) | const |
Referenced by QtPdCom::MessageModel::connect().
QString Process::getPeerName | ( | ) | const |
int Process::getPort | ( | ) | const |
quint64 Process::getRxBytes | ( | ) | const |
quint64 Process::getTxBytes | ( | ) | const |
QUrl Process::getUrl | ( | ) | const |
|
overrideprivate |
bool Process::isConnected | ( | ) | const |
Referenced by QtPdCom::ClientStatisticsModel::setProcess().
QFuture< QtPdCom::VariableList > Process::list | ( | const QString & | path = "" | ) |
Wrapper function for Process::list.
Referenced by list().
|
inline |
References list().
|
overrideprivate |
|
inline |
References pingQt().
QFuture< void > Process::pingQt | ( | ) |
Referenced by ping().
|
overrideprivate |
Ping Reply.
|
signal |
Connection established.
This is emitted after the connection is established.
Referenced by QtPdCom::MessageModel::connect().
QtPdCom::Process::Q_ENUM | ( | ConnectionState | ) |
|
overrideprivate |
Read data from the socket.
|
private |
Resets the PdCom process.
Referenced by ~Process().
void Process::sendBroadcast | ( | const QString & | msg, |
const QString & | attr = "text" |
||
) |
Send a broadcast message.
void Process::setApplicationName | ( | const QString & | name | ) |
Sets the application name.
References impl.
void QtPdCom::Process::setCaMode | ( | SslCaMode | mode | ) |
Set Traffic Encryption mode.
See the SslCaMode enum for details.
mode | Mode. |
void QtPdCom::Process::setClientCertificate | ( | const QSslCertificate & | cert, |
const QSslKey & | key | ||
) |
Provide a client certificate.
cert | Public certificate. |
key | Private key. |
void QtPdCom::Process::setCustomCAs | ( | QList< QSslCertificate > | cas | ) |
Set list of trusted Certificate Authorities.
For SslCaMode::CustomCAs
mode.
cas | List of trusted CAs. |
|
static |
Set default process "manually".
References QtPdCom::Process::Impl::defaultProcess.
void QtPdCom::Process::setLoginManager | ( | LoginManager * | lm | ) |
Set the Login Manager.
lm | The Login manager. May be NULL . |
References QtPdCom::LoginManager::d_ptr.
|
privateslot |
Socket connection established.
This is called, when the pure socket connection was established and the Process object can start using it.
|
privateslot |
Socket disconnected.
The socket was closed and the process has to be told, that it is disconnected.
|
privateslot |
There was a socket error.
The error could come up either while connecting the socket, or when the socket was already connected.
|
privateslot |
The socket has new data to read.
|
signal |
|
overrideprivate |
Sends data via the socket.
This is the implementation of the virtual PdCom::Process method to enable the Process object to send data to the process.
|
private |
|
private |
Referenced by connectToHost(), getApplicationName(), setApplicationName(), and ~Process().
|
readwrite |
|
read |
The process is connected and ready.
This virtual function from PdCom::Process has to be overloaded to let subclasses know about this event.
|
read |
|
read |
|
readwrite |
|
read |
Referenced by connectToHost().
|
readwrite |
|
read |