Merge pull request #92 from majestrate/win32-fixups-2020-11-30

Win32 fixups
This commit is contained in:
Jeff 2020-11-30 10:20:46 -05:00 committed by GitHub
commit 59c91abaea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 14 deletions

View File

@ -51,13 +51,17 @@ void ApiPoller::pollDaemon() {
qDebug() << "Warning: No endpoint; call ApiPoller::setApiEndpoint() before polling";
return;
}
lmq.request(lmq_conn, m_rpcMethod,
if(lmq_conn.has_value())
{
lmq.request(
*lmq_conn,
m_rpcMethod,
[=](bool success, std::vector<std::string> data)
{
if(success and not data.empty())
{
emit statusAvailable(QString::fromStdString(data[0]));
}
if(success and not data.empty())
{
emit statusAvailable(QString::fromStdString(data[0]));
}
});
}
}

View File

@ -9,8 +9,12 @@ bool LokinetApiClient::invoke(const std::string& endpoint, QJsonObject args, Rep
std::cout << "call " << endpoint;
QJsonDocument doc(args);
const auto req = doc.toJson();
if(not lmq_conn.has_value())
{
return false;
}
lmq.request(
lmq_conn,
*lmq_conn,
std::string_view{endpoint},
[cb = callback](bool success, std::vector<std::string> data)
{

View File

@ -9,4 +9,4 @@ constexpr auto LOKINET_RPC_URL = "tcp://127.0.0.1:1190";
extern std::string RPCURL;
extern lokimq::LokiMQ lmq;
extern lokimq::ConnectionID lmq_conn;
extern std::optional<lokimq::ConnectionID> lmq_conn;

View File

@ -18,7 +18,7 @@ constexpr bool isSystemd = false;
#endif
lokimq::LokiMQ lmq{};
lokimq::ConnectionID lmq_conn;
std::optional<lokimq::ConnectionID> lmq_conn;
std::string RPCURL{LOKINET_RPC_URL};
int32_t main(int32_t argc, char *argv[])
@ -57,7 +57,20 @@ int32_t main(int32_t argc, char *argv[])
#endif
lmq.start();
lmq_conn = lmq.connect_remote(RPCURL, nullptr, nullptr);
lmq.add_timer([]() {
if(lmq_conn.has_value())
return;
lmq.connect_remote(
RPCURL,
[](lokimq::ConnectionID conn)
{
lmq_conn = conn;
},
[](auto, auto)
{
lmq_conn = std::nullopt;
});
}, std::chrono::milliseconds{500});
QApplication app(argc, argv);
app.setWindowIcon(QIcon(":/res/images/icon.svg"));
app.setQuitOnLastWindowClosed(false);

View File

@ -21,16 +21,14 @@ WindowsLokinetProcessManager::WindowsLokinetProcessManager()
bool WindowsLokinetProcessManager::doStartLokinetProcess()
{
// try searching one level up from CWD
bool success = QProcess::startDetached(path, {"start", "lokinet"});
if (!success)
qDebug("QProcess::startDetached() failed");
const bool success = QProcess::execute(path, {"start", "lokinet"}) == 0;
int pid = -1;
return success and doGetProcessPid(pid) and pid != -1;
}
bool WindowsLokinetProcessManager::doStopLokinetProcess()
{
return QProcess::startDetached(path, {"stop", "lokinet"});
return QProcess::execute(path, {"stop", "lokinet"}) == 0;
}
bool WindowsLokinetProcessManager::doForciblyStopLokinetProcess()