2#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
3#include <QtSystemDetection>
22 QStringList &commands, QStringList &slist)
24 if (commands.size() != 4)
27 bool blockShutdown =
true;
28 if (commands[1] ==
"Playback")
30 else if (commands[1] ==
"Monitor")
31 blockShutdown =
false;
35 const QString&
hostname = commands[2];
37 int eventlevel = commands[3].toInt();
38 bool systemevents = ( (eventlevel == 1) || (eventlevel == 3));
39 bool normalevents = ( (eventlevel == 1) || (eventlevel == 2));
44 handler->BlockShutdown(blockShutdown);
45 handler->AllowStandardEvents(normalevents);
46 handler->AllowSystemEvents(systemevents);
50 handler->WriteStringList(QStringList(
"OK"));
54 LOG(VB_GENERAL, LOG_DEBUG, QString(
"MainServer::ANN %1")
56 LOG(VB_GENERAL, LOG_NOTICE, QString(
"adding: %1 as a client (events: %2)")
57 .arg(commands[2]).arg(eventlevel));
77 QStringList &commands,
80 const QString& command = commands[0];
83 if (command ==
"QUERY_LOAD")
85 else if (command ==
"QUERY_UPTIME")
87 else if (command ==
"QUERY_HOSTNAME")
89 else if (command ==
"QUERY_MEMSTATS")
91 else if (command ==
"QUERY_TIME_ZONE")
107#if defined(Q_OS_WINDOWS) || defined(Q_OS_ANDROID)
109 strlist <<
"getloadavg() not supported";
115 strlist <<
"getloadavg() failed";
119 strlist << QString::number(loads[0])
120 << QString::number(loads[1])
121 << QString::number(loads[2]);
137 std::chrono::seconds uptime = 0s;
140 strlist << QString::number(uptime.count());
144 strlist <<
"Could not determine uptime.";
181 strlist << QString::number(totalMB) << QString::number(freeMB)
182 << QString::number(totalVM) << QString::number(freeVM);
187 <<
"Could not determine memory stats.";
static bool HandleQueryLoad(SocketHandler *sock)
static bool HandleQueryHostname(SocketHandler *sock)
static bool HandleQueryMemStats(SocketHandler *sock)
static bool HandleQueryUptime(SocketHandler *sock)
bool HandleQuery(SocketHandler *sock, QStringList &commands, QStringList &slist) override
Dispatch query messages received from a client.
bool HandleAnnounce(MythSocket *socket, QStringList &commands, QStringList &slist) override
static bool HandleQueryTimeZone(SocketHandler *sock)
QString GetHostName(void)
void SendSystemEvent(const QString &msg)
void AddSocketHandler(SocketHandler *socket)
Class for communcating between myth backends and frontends.
void SetAnnounce(const QStringList &new_announce)
bool WriteStringList(const QStringList &strlist)
MythSocketManager * m_parent
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
bool getMemStats(int &totalMB, int &freeMB, int &totalVM, int &freeVM)
Returns memory statistics in megabytes.
loadArray getLoadAvgs(void)
Returns the system load averages.
bool getUptime(std::chrono::seconds &uptime)
Returns uptime statistics.
std::array< double, 3 > loadArray
QString current_iso_string(bool stripped)
Returns current Date and Time in UTC as a string.
int calc_utc_offset(void)
QString getTimeZoneID(void)
Returns the zoneinfo time zone ID or as much time zone information as possible.