9 #include <QCoreApplication>
10 #include <QDBusServer>
15 #include <QStringList>
16 #include <QTextStream>
32 int main(
int argc,
char *argv[])
38 QCoreApplication a(argc, argv);
39 QTextStream out(stdout, QIODevice::WriteOnly);
40 QTextStream qtin(stdin);
41 const bool verbose =
false;
44 const QStringList cmdlineArgs = QCoreApplication::arguments();
45 if (cmdlineArgs.length() < 1)
47 qFatal(
"Missing name of executable");
53 QString ip = ipV4Addresses.isEmpty() ?
"192.168.0.125" : ipV4Addresses.last();
54 QString port =
"45000";
55 const QString executable = QString(cmdlineArgs.at(0));
56 const bool clientFlag = cmdlineArgs.contains(
"client", Qt::CaseInsensitive);
57 bool useSessionBusForServer =
false;
58 if (cmdlineArgs.contains(
"session", Qt::CaseInsensitive))
61 useSessionBusForServer =
true;
66 useSessionBusForServer =
false;
67 if (cmdlineArgs.length() > 2)
69 ip = cmdlineArgs.at(cmdlineArgs.length() - 2);
70 port = cmdlineArgs.at(cmdlineArgs.length() - 1);
73 QString addressTcp = QStringLiteral(
"tcp:host=%1,port=%2").arg(ip, port);
74 QString address(useSessionBusForServer ?
"session" : addressTcp);
82 out <<
"Running client side " << QCoreApplication::applicationPid() << Qt::endl;
85 if (cmdlineArgs.contains(
"testservice", Qt::CaseInsensitive))
96 out <<
"Pid: " << QCoreApplication::applicationPid() << Qt::endl;
97 out <<
"1 .. Run testservice to test data transfer" << addressTcp << Qt::endl;
98 out <<
"1sb. Run testservice via session bus" << Qt::endl;
99 out <<
"2 .. Show signatures" << Qt::endl;
100 out <<
"----- Change address / port (no validation, do before starting server)" << Qt::endl;
101 out <<
"loop Address to loopback, 127.0.0.1" << Qt::endl;
102 out <<
"ip some IP address, e.g " << ip << Qt::endl;
103 out <<
"port some port, e.g 12345" << Qt::endl;
104 out <<
"-----" << Qt::endl;
105 out <<
"x .. Bye" << Qt::endl;
106 QString mode = qtin.readLine().toLower().trimmed();
108 if (mode.startsWith(
"l"))
111 addressTcp = QStringLiteral(
"tcp:host=%1,port=%2").arg(ip, port);
114 if (mode.startsWith(
"i"))
116 const QStringList p = mode.split(QRegExp(
"\\s"));
120 addressTcp = QStringLiteral(
"tcp:host=%1,port=%2").arg(ip, port);
124 if (mode.startsWith(
"p"))
126 const QStringList p = mode.split(QRegExp(
"\\s"));
130 addressTcp = QStringLiteral(
"tcp:host=%1,port=%2").arg(ip, port);
134 if (mode.startsWith(
"2"))
136 out <<
"---------------------------------" << Qt::endl;
138 out <<
"---------------------------------" << Qt::endl;
143 address = QString(useSessionBusForServer ?
"session" : addressTcp);
144 if (mode.contains(
"sb", Qt::CaseInsensitive)) address =
"session";
145 if (mode.startsWith(
"1")) { mode =
"testservice"; }
150 out <<
"--------------------------------------------------------" << Qt::endl;
155 out <<
"server" << dBusServer->
qDBusServer()->address()
156 <<
" connected:" << dBusServer->
qDBusServer()->isConnected() << Qt::endl;
162 if (address ==
"session")
bool hasQDBusServer() const
True if using P2P.
const QDBusServer * qDBusServer() const
DBus server (if using P2P)
static bool startDetached(const QString &program, const QStringList &arguments, bool withConsoleWindow)
Start a programm detached and without any console window.
static QStringList getKnownLocalIpV4Addresses()
Find out my IPv4 addresses including loopback, empty if not possible.
Free functions in swift::misc.
void registerMetadata()
Register all relevant metadata in Misc.
int main(int argc, char *argv[])
main