diff --git a/chain/wallet/handlers/DapNetworkGoToCommand.cpp b/chain/wallet/handlers/DapNetworkGoToCommand.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2979fb637de5d530947007d519a9301a1bd47ffb --- /dev/null +++ b/chain/wallet/handlers/DapNetworkGoToCommand.cpp @@ -0,0 +1,49 @@ +#include "DapNetworkGoToCommand.h" + +#include <QRegularExpression> + +/// Overloaded constructor. +/// @param asServiceName Service name. +/// @param parent Parent. +/// @details The parent must be either DapRPCSocket or DapRPCLocalServer. +DapNetworkGoToCommand::DapNetworkGoToCommand(const QString &asServicename, QObject *parent, const QString &asCliPath) + : DapAbstractCommand(asServicename, parent, asCliPath) +{ + +} + +/// Send a response to the client. +/// @details Performed on the service side. +/// @param arg1...arg10 Parameters. +/// @return Reply to client. +QVariant DapNetworkGoToCommand::respondToClient(const QVariant &arg1, const QVariant &arg2, const QVariant &arg3, + const QVariant &arg4, const QVariant &arg5, const QVariant &arg6, + const QVariant &arg7, const QVariant &arg8, const QVariant &arg9, + const QVariant &arg10) +{ + Q_UNUSED(arg3) + Q_UNUSED(arg4) + Q_UNUSED(arg5) + Q_UNUSED(arg5) + Q_UNUSED(arg6) + Q_UNUSED(arg7) + Q_UNUSED(arg8) + Q_UNUSED(arg9) + Q_UNUSED(arg10) + + QProcess process; + QString command(QString("%1 net -net %2 go %3").arg(m_sCliPath).arg(arg1.toString()).arg(arg2.toString())); + process.start(command); + process.waitForFinished(-1); + QString result = QString::fromLatin1(process.readAll()); + + QVariantMap resultObj; + + QRegularExpression rx(QString(R"(Network "%1" go from state \S+ to (\S+))").arg(arg1.toString())); + QRegularExpressionMatch match = rx.match(result); + if (!match.hasMatch()) { + return QString(); + } + + return match.captured(1); +} diff --git a/chain/wallet/handlers/DapNetworkGoToCommand.h b/chain/wallet/handlers/DapNetworkGoToCommand.h new file mode 100644 index 0000000000000000000000000000000000000000..b2741b08ffd6517dbe94d7306246949c6a63c416 --- /dev/null +++ b/chain/wallet/handlers/DapNetworkGoToCommand.h @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** This file is part of the libdap-qt-ui-chain-wallet library. +** +** The class implements the functionality of creating a new wallet. +** +****************************************************************************/ + +#ifndef DAPNETWORKGOTOCOMMAND_H +#define DAPNETWORKGOTOCOMMAND_H + +#include <QProcess> +#include <QString> + +#include "DapAbstractCommand.h" +#include "DapNetwork.h" + + +class DapNetworkGoToCommand : public DapAbstractCommand +{ +public: + /// Overloaded constructor. + /// @param asServiceName Service name. + /// @param parent Parent. + /// @details The parent must be either DapRPCSocket or DapRPCLocalServer. + explicit DapNetworkGoToCommand(const QString &asServicename, QObject *parent, const QString &asCliPath = QString()); + +public slots: + /// Send a response to the client. + /// @details Performed on the service side. + /// @param arg1...arg10 Parameters. + /// @return Reply to client. + QVariant respondToClient(const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), //original + const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), + const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), + const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant(), + const QVariant &arg9 = QVariant(), const QVariant &arg10 = QVariant()) override; + }; + +#endif // DAPNETWORKGOTOCOMMAND_H diff --git a/chain/wallet/libdap-qt-chain-wallet.pri b/chain/wallet/libdap-qt-chain-wallet.pri index 87d46f643b5085cbe2f27fcacf8352856cb2c478..2702f45a00c4168c0ba9337d532a1b328eae119d 100644 --- a/chain/wallet/libdap-qt-chain-wallet.pri +++ b/chain/wallet/libdap-qt-chain-wallet.pri @@ -41,6 +41,7 @@ HEADERS += \ $$PWD/handlers/DapGetWalletInfoCommand.h \ $$PWD/handlers/DapGetWalletTokenInfoCommand.h \ $$PWD/handlers/DapMempoolProcessCommand.h \ + $$PWD/handlers/DapNetworkGoToCommand.h \ $$PWD/handlers/DapQuitApplicationCommand.h \ $$PWD/handlers/DapRunCmdCommand.h \ $$PWD/handlers/DapSaveHistoryExecutedCmdCommand.h \ @@ -80,6 +81,7 @@ SOURCES += \ $$PWD/handlers/DapGetWalletInfoCommand.cpp \ $$PWD/handlers/DapGetWalletTokenInfoCommand.cpp \ $$PWD/handlers/DapMempoolProcessCommand.cpp \ + $$PWD/handlers/DapNetworkGoToCommand.cpp \ $$PWD/handlers/DapQuitApplicationCommand.cpp \ $$PWD/handlers/DapRunCmdCommand.cpp \ $$PWD/handlers/DapSaveHistoryExecutedCmdCommand.cpp \