MythTV  0.28pre
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Groups Pages
Enumerations | Functions
mythmiscutil.cpp File Reference

Go to the source code of this file.

Enumerations

enum  { IOPRIO_CLASS_NONE, IOPRIO_CLASS_RT, IOPRIO_CLASS_BE, IOPRIO_CLASS_IDLE }
 
enum  { IOPRIO_WHO_PROCESS = 1, IOPRIO_WHO_PGRP, IOPRIO_WHO_USER }
 

Functions

bool getUptime (time_t &uptime)
 Returns uptime statistics. More...
 
bool getMemStats (int &totalMB, int &freeMB, int &totalVM, int &freeVM)
 Returns memory statistics in megabytes. More...
 
bool hasUtf8 (const char *str)
 Guess whether a string is UTF-8. More...
 
bool ping (const QString &host, int timeout)
 Can we ping host within timeout seconds? More...
 
bool telnet (const QString &host, int port)
 Can we talk to port on host? More...
 
long long copy (QFile &dst, QFile &src, uint block_size)
 Copies src file to dst file. More...
 
QString createTempFile (QString name_template, bool dir)
 
bool makeFileAccessible (QString filename)
 Makes a file accessible to all frontends/backends. More...
 
QString getResponse (const QString &query, const QString &def)
 In an interactive shell, prompt the user to input a string. More...
 
int intResponse (const QString &query, int def)
 In an interactive shell, prompt the user to input a number. More...
 
QString getSymlinkTarget (const QString &start_file, QStringList *intermediaries, unsigned maxLinks)
 
bool IsMACAddress (QString MAC)
 
QString FileHash (QString filename)
 
bool WakeOnLAN (QString MAC)
 
bool IsPulseAudioRunning (void)
 Is A/V Sync destruction daemon is running on this host? More...
 
bool myth_nice (int val)
 
void myth_yield (void)
 
bool myth_ioprio (int val)
 range -1..8, smaller is higher priority More...
 
bool MythRemoveDirectory (QDir &aDir)
 
void setHttpProxy (void)
 Get network proxy settings from OS, and use for [Q]Http[Comms]. More...
 
void wrapList (QStringList &list, int width)
 
QString xml_indent (uint level)
 

Enumeration Type Documentation

anonymous enum
Enumerator
IOPRIO_CLASS_NONE 
IOPRIO_CLASS_RT 
IOPRIO_CLASS_BE 
IOPRIO_CLASS_IDLE 

Definition at line 754 of file mythmiscutil.cpp.

anonymous enum
Enumerator
IOPRIO_WHO_PROCESS 
IOPRIO_WHO_PGRP 
IOPRIO_WHO_USER 

Definition at line 755 of file mythmiscutil.cpp.

Function Documentation

getUptime ( time_t &  uptime)

Returns uptime statistics.

Returns
true if successful, false otherwise.

Definition at line 60 of file mythmiscutil.cpp.

Referenced by StatusBox::doMachineStatus(), BaseRequestHandler::HandleQueryUptime(), MainServer::HandleQueryUptime(), and NetworkControl::processQuery().

getMemStats ( int totalMB,
int freeMB,
int totalVM,
int freeVM 
)

Returns memory statistics in megabytes.

Todo:
Memory Statistics are not supported (by MythTV) on NT or DOS.
Returns
true if it succeeds, false otherwise.

Definition at line 107 of file mythmiscutil.cpp.

Referenced by StatusBox::doMachineStatus(), BaseRequestHandler::HandleQueryMemStats(), MainServer::HandleQueryMemStats(), and NetworkControl::processQuery().

bool hasUtf8 ( const char *  str)

Guess whether a string is UTF-8.

Note
This does not attempt to validate the whole string. It just checks if it has any UTF-8 sequences in it.

Definition at line 175 of file mythmiscutil.cpp.

bool ping ( const QString &  host,
int  timeout 
)

Can we ping host within timeout seconds?

Some unixes don't like the -t argument. To make sure a ping failure is actually caused by a defunct server, we might have to do a ping without the -t, which will cause a long timeout.

Definition at line 220 of file mythmiscutil.cpp.

Referenced by setHttpProxy(), and MythContextPrivate::TestDBconnection().

bool telnet ( const QString &  host,
int  port 
)

Can we talk to port on host?

Definition at line 264 of file mythmiscutil.cpp.

Referenced by setHttpProxy().

copy ( QFile &  dst,
QFile &  src,
uint  block_size 
)

Copies src file to dst file.

If the dst file is open, it must be open for writing. If the src file is open, if must be open for reading.

The files will be in the same open or close state after this function runs as they were prior to this function being called.

This function does not care if the files are actual files. For compatibility with pipes and socket streams the file location will not be reset to 0 at the end of this function. If the function is successful the file pointers will be at the end of the copied data.

Parameters
dstDestination QFile
srcSource QFile
block_sizeOptional block size in bytes, must be at least 1024, otherwise the default of 16 KB will be used.
Returns
bytes copied on success, -1 on failure.

Definition at line 295 of file mythmiscutil.cpp.

Referenced by ImportMusicDialog::copyFile(), mythburn::copyRemote(), VAAPIContext::CopySurfaceToFrame(), mythburn::doProcessFile(), mythburn::doProcessFileProjectX(), VideoVisualGoom::Draw(), mythburn::getFileInformation(), PrivateDecoderCrystalHD::GetFrame(), nv_python_libs.common.common_api.Common::getUrlData(), HLSStream::HLSStream(), ImportRecorder::Open(), mythburn::preProcessFile(), MythImage::Reflect(), trail_space(), nv_python_libs.xsltfunctions.traileraddicts_api.xpathFunctions::traileraddictsLinkGenerationMovie(), and ThumbFinder::updateThumb().

QString createTempFile ( QString  name_template,
bool  dir 
)
makeFileAccessible ( QString  filename)

Makes a file accessible to all frontends/backends.

This function abstracts the functionality of making a file accessible to all frontends and backends. Currently it contains a permissions hack that makes a file accessible even on a system with an improperly configured environment (umask/group) where the frontend and backend are being run as different users or where a NFS share is used but UID's/GID's differ on different hosts.

Though the function currently only changes the file mode to 0666, by abstracting the functionality, it will be easier to make changes in the future if a better approach is chosen. Similarly, using this function allows the hack to be applied only when required if code is written to detect or allow the user to specify their system is misconfigured.

Parameters
filenamePath of file to make accessible

Definition at line 424 of file mythmiscutil.cpp.

Referenced by Content::GetPreviewImage(), DataDirectProcessor::SaveLineupToCache(), and PreviewGenerator::SavePreview().

QString getResponse ( const QString &  query,
const QString &  def 
)

In an interactive shell, prompt the user to input a string.

Definition at line 439 of file mythmiscutil.cpp.

Referenced by intResponse(), ChannelData::promptForChannelUpdates(), MythContextPrivate::PromptForDatabaseParams(), and SchemaUpgradeWizard::PromptForUpgrade().

int intResponse ( const QString &  query,
int  def 
)

In an interactive shell, prompt the user to input a number.

Definition at line 469 of file mythmiscutil.cpp.

Referenced by MythContextPrivate::PromptForDatabaseParams().

QString getSymlinkTarget ( const QString &  start_file,
QStringList *  intermediaries,
unsigned  maxLinks 
)
bool IsMACAddress ( QString  MAC)

Definition at line 535 of file mythmiscutil.cpp.

Referenced by Scheduler::WakeUpSlave().

QString FileHash ( QString  filename)
bool WakeOnLAN ( QString  MAC)

Definition at line 623 of file mythmiscutil.cpp.

Referenced by Scheduler::WakeUpSlave().

bool IsPulseAudioRunning ( void  )

Is A/V Sync destruction daemon is running on this host?

Definition at line 663 of file mythmiscutil.cpp.

Referenced by AudioOutput::OpenAudio(), and PulseHandler::Suspend().

bool myth_nice ( int  val)
void myth_yield ( void  )

Definition at line 695 of file mythmiscutil.cpp.

bool myth_ioprio ( int  val)

range -1..8, smaller is higher priority

Definition at line 757 of file mythmiscutil.cpp.

Referenced by JobQueue::DoTranscodeThread(), JobQueue::DoUserJobThread(), MythSystemLegacyUnix::Fork(), and main().

bool MythRemoveDirectory ( QDir &  aDir)
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: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 831 of file mythmiscutil.cpp.

Referenced by main().

void wrapList ( QStringList &  list,
int  width 
)
QString xml_indent ( uint  level)