MythTV
master
|
#include <algorithm>
#include <array>
#include <cstdint>
#include <ctime>
#include <QString>
#include <QDir>
#include "mythbaseexp.h"
#include "mythsystem.h"
Go to the source code of this file.
Namespaces | |
MythFile | |
Typedefs | |
using | loadArray = std::array< double, 3 > |
Functions | |
MBASE_PUBLIC bool | getUptime (std::chrono::seconds &uptime) |
MBASE_PUBLIC bool | getMemStats (int &totalMB, int &freeMB, int &totalVM, int &freeVM) |
Returns memory statistics in megabytes. More... | |
MBASE_PUBLIC loadArray | getLoadAvgs (void) |
Returns the system load averages. More... | |
MBASE_PUBLIC bool | ping (const QString &host, std::chrono::milliseconds timeout) |
Can we ping host within timeout seconds? More... | |
MBASE_PUBLIC bool | telnet (const QString &host, int port) |
Can we talk to port on host? More... | |
MBASE_PUBLIC long long | MythFile::copy (QFile &dst, QFile &src, uint block_size=0) |
Copies src file to dst file. More... | |
MBASE_PUBLIC QString | createTempFile (QString name_template="/tmp/mythtv_XXXXXX", bool dir=false) |
MBASE_PUBLIC bool | makeFileAccessible (const QString &filename) |
MBASE_PUBLIC QString | getResponse (const QString &query, const QString &def) |
In an interactive shell, prompt the user to input a string. More... | |
MBASE_PUBLIC int | intResponse (const QString &query, int def) |
In an interactive shell, prompt the user to input a number. More... | |
MBASE_PUBLIC QString | getSymlinkTarget (const QString &start_file, QStringList *intermediaries=nullptr, unsigned maxLinks=255) |
MBASE_PUBLIC bool | IsMACAddress (const QString &MAC) |
MBASE_PUBLIC bool | WakeOnLAN (const QString &MAC) |
MBASE_PUBLIC bool | MythWakeup (const QString &wakeUpCommand, uint flags=kMSNone, std::chrono::seconds timeout=0s) |
MBASE_PUBLIC QString | FileHash (const QString &filename) |
MBASE_PUBLIC bool | IsPulseAudioRunning (void) |
Is A/V Sync destruction daemon is running on this host? More... | |
MBASE_PUBLIC bool | myth_nice (int val) |
MBASE_PUBLIC void | myth_yield (void) |
MBASE_PUBLIC bool | myth_ioprio (int val) |
range -1..8, smaller is higher priority More... | |
MBASE_PUBLIC bool | MythRemoveDirectory (QDir &aDir) |
MBASE_PUBLIC void | setHttpProxy (void) |
Get network proxy settings from OS, and use for [Q]Http[Comms]. More... | |
using loadArray = std::array<double,3> |
Definition at line 22 of file mythmiscutil.h.
MBASE_PUBLIC bool getUptime | ( | std::chrono::seconds & | uptime | ) |
Definition at line 66 of file mythmiscutil.cpp.
Referenced by StatusBox::doMachineStatus(), BaseRequestHandler::HandleQueryUptime(), MainServer::HandleQueryUptime(), and NetworkControl::processQuery().
getMemStats | ( | int & | totalMB, |
int & | freeMB, | ||
int & | totalVM, | ||
int & | freeVM | ||
) |
MBASE_PUBLIC loadArray getLoadAvgs | ( | void | ) |
Returns the system load averages.
Definition at line 175 of file mythmiscutil.cpp.
Referenced by StatusBox::doMachineStatus(), HttpStatus::FillStatusXML(), V2Status::FillStatusXML(), V2Status::GetBackendStatus(), BaseRequestHandler::HandleQueryLoad(), MainServer::HandleQueryLoad(), and NetworkControl::processQuery().
MBASE_PUBLIC bool ping | ( | const QString & | host, |
std::chrono::milliseconds | timeout | ||
) |
Can we ping host within timeout seconds?
Different operating systems use different parameters to specify a timeout to the ping command. FreeBSD and derivatives use '-t'; Linux and derivatives use '-w'. Using the right parameter also eliminates the need for the old behavior of falling back to pinging the localhost with and without a timeout, in order to characterize whether the right parameter was used in the first place.
Definition at line 199 of file mythmiscutil.cpp.
Referenced by setHttpProxy().
MBASE_PUBLIC bool telnet | ( | const QString & | host, |
int | port | ||
) |
Can we talk to port on host?
Definition at line 232 of file mythmiscutil.cpp.
Referenced by setHttpProxy().
MBASE_PUBLIC QString createTempFile | ( | QString | name_template = "/tmp/mythtv_XXXXXX" , |
bool | dir = false |
||
) |
Definition at line 323 of file mythmiscutil.cpp.
Referenced by DBUtil::CreateTemporaryDBConf(), and FillData::GrabData().
MBASE_PUBLIC bool makeFileAccessible | ( | const QString & | filename | ) |
Definition at line 395 of file mythmiscutil.cpp.
Referenced by V2Content::GetPreviewImage(), and PreviewGenerator::SavePreview().
MBASE_PUBLIC QString getResponse | ( | const QString & | query, |
const QString & | def | ||
) |
In an interactive shell, prompt the user to input a string.
Definition at line 410 of file mythmiscutil.cpp.
Referenced by intResponse(), ChannelData::promptForChannelUpdates(), MythContext::Impl::PromptForDatabaseParams(), and SchemaUpgradeWizard::PromptForUpgrade().
MBASE_PUBLIC int intResponse | ( | const QString & | query, |
int | def | ||
) |
In an interactive shell, prompt the user to input a number.
Definition at line 440 of file mythmiscutil.cpp.
Referenced by MythContext::Impl::PromptForDatabaseParams().
MBASE_PUBLIC QString getSymlinkTarget | ( | const QString & | start_file, |
QStringList * | intermediaries = nullptr , |
||
unsigned | maxLinks = 255 |
||
) |
Definition at line 451 of file mythmiscutil.cpp.
Referenced by CompleteJob(), anonymous_namespace{mainserver.cpp}::delete_file_immediately(), MainServer::DeleteFile(), ProgramInfo::DiscoverRecordingDirectory(), MythMediaDevice::findMountPath(), MediaMonitor::MediaMonitor(), MythMediaDevice::MythMediaDevice(), and DeleteThread::ProcessNew().
MBASE_PUBLIC bool IsMACAddress | ( | const QString & | MAC | ) |
Definition at line 503 of file mythmiscutil.cpp.
Referenced by MythWakeup(), and Scheduler::WakeUpSlave().
MBASE_PUBLIC bool WakeOnLAN | ( | const QString & | MAC | ) |
Definition at line 589 of file mythmiscutil.cpp.
Referenced by MythWakeup(), and Scheduler::WakeUpSlave().
MBASE_PUBLIC bool MythWakeup | ( | const QString & | wakeUpCommand, |
uint | flags = kMSNone , |
||
std::chrono::seconds | timeout = 0s |
||
) |
Definition at line 630 of file mythmiscutil.cpp.
Referenced by MythCoreContext::ConnectCommandSocket(), MSqlDatabase::OpenDatabase(), and MythContext::Impl::TestDBconnection().
MBASE_PUBLIC QString FileHash | ( | const QString & | filename | ) |
Definition at line 548 of file mythmiscutil.cpp.
Referenced by V2Video::AddVideo(), RemoteFile::GetFileHash(), V2Content::GetHash(), FileServerHandler::HandleQueryFileHash(), MainServer::HandleQueryFileHash(), UpdateHashes(), and VideoMetadata::VideoFileHash().
MBASE_PUBLIC bool IsPulseAudioRunning | ( | void | ) |
Is A/V Sync destruction daemon is running on this host?
Definition at line 638 of file mythmiscutil.cpp.
Referenced by PulseHandler::Suspend().
MBASE_PUBLIC bool myth_nice | ( | int | val | ) |
Definition at line 656 of file mythmiscutil.cpp.
Referenced by JobQueue::DoTranscodeThread(), JobQueue::DoUserJobThread(), MythSystemLegacyUnix::Fork(), MythPlayer::InitFrameInterval(), and main().
MBASE_PUBLIC void myth_yield | ( | void | ) |
Definition at line 670 of file mythmiscutil.cpp.
MBASE_PUBLIC bool myth_ioprio | ( | int | ) |
range -1..8, smaller is higher priority
range -1..8, smaller is higher priority
As of November 14th, 2010 this only works on Linux when using the CFQ I/O Scheduler. The range is -1 to 8, with -1 being real-time priority 0 through 7 being standard best-time priorities and 8 being the idle priority. The deadline and noop I/O Schedulers will ignore this but are much less likely to starve video playback to feed the transcoder or flagger. (noop is only recommended for SSDs.)
Since a process needs to have elevated priviledges to use either the real-time or idle priority this will try priorities 0 or 7 respectively if -1 or 8 do not work. It will not report an error on these conditions as they will be the common case.
Only Linux on i386, ppc, x86_64 and ia64 are currently supported. This is a no-op on all other architectures and platforms.
Definition at line 755 of file mythmiscutil.cpp.
Referenced by JobQueue::DoTranscodeThread(), JobQueue::DoUserJobThread(), MythSystemLegacyUnix::Fork(), and main().
MBASE_PUBLIC bool MythRemoveDirectory | ( | QDir & | aDir | ) |
Definition at line 759 of file mythmiscutil.cpp.
Referenced by NativeArchive::doNativeArchive(), MythBurn::MythBurn(), MythRemoveDirectory(), MainServer::OpenAndUnlink(), and DeleteThread::ProcessNew().
MBASE_PUBLIC void setHttpProxy | ( | void | ) |
Get network proxy settings from OS, and use for [Q]Http[Comms].
The HTTP_PROXY environment var. is parsed for values like; "proxy-host", "proxy-host:8080", "http://host:8080" and "http"//user:password@host:1080", and that is used for any Qt-based Http fetches. We also test connectivity here with ping and telnet, and warn if it fails.
If there is was no env. var, we use Qt to get proxy settings from the OS, and search through them for a proxy server we can connect to.
Definition at line 803 of file mythmiscutil.cpp.
Referenced by main().