vdr  2.2.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
cShutdownHandler Class Reference

#include <shutdown.h>

Public Member Functions

 cShutdownHandler (void)
 
 ~cShutdownHandler ()
 
void Exit (int ExitCode)
 
bool DoExit (void)
 
int GetExitCode (void)
 
bool EmergencyExitRequested (void)
 
void RequestEmergencyExit (void)
 
void CheckManualStart (int ManualStart)
 
void SetShutdownCommand (const char *ShutdownCommand)
 
void CallShutdownCommand (time_t WakeupTime, int Channel, const char *File, bool UserShutdown)
 
bool IsUserInactive (time_t AtTime=0)
 
time_t GetUserInactiveTime (void)
 
void SetUserInactiveTimeout (int Seconds=-1, bool Force=false)
 
void SetUserInactive (void)
 
bool Retry (time_t AtTime=0)
 
time_t GetRetry (void)
 
void SetRetry (int Seconds)
 
bool ConfirmShutdown (bool Ask)
 
bool ConfirmRestart (bool Ask)
 
bool DoShutdown (bool Force)
 

Public Attributes

cCountdown countdown
 

Private Attributes

time_t activeTimeout
 
time_t retry
 
char * shutdownCommand
 
int exitCode
 
bool emergencyExitRequested
 

Detailed Description

Definition at line 38 of file shutdown.h.

Constructor & Destructor Documentation

cShutdownHandler::cShutdownHandler ( void  )

Definition at line 82 of file shutdown.c.

cShutdownHandler::~cShutdownHandler ( )

Definition at line 91 of file shutdown.c.

Member Function Documentation

void cShutdownHandler::CallShutdownCommand ( time_t  WakeupTime,
int  Channel,
const char *  File,
bool  UserShutdown 
)

Call the shutdown command with the given parameters.

Definition at line 130 of file shutdown.c.

References esyslog, isyslog, cSetup::NextWakeupTime, cSetup::Save(), Setup, cString::sprintf(), strescape(), and SystemExec().

void cShutdownHandler::CheckManualStart ( int  ManualStart)

Check whether the next timer is in ManualStart time window.

If yes, assume non-interactive use.

Definition at line 107 of file shutdown.c.

References dsyslog, cSetup::NextWakeupTime, and Setup.

Referenced by main().

bool cShutdownHandler::ConfirmRestart ( bool  Ask)

Check for background activity that blocks restart.

Returns immediately and without user interaction if Ask = false. Asks for confirmation if Ask = true. Returns true if ready for restart.

Definition at line 211 of file shutdown.c.

References cPluginManager::Active(), cRecordControls::Active(), cRecordingsHandler::Active(), cInterface::Confirm(), cTimers::GetNextActiveTimer(), Interface, RecordingsHandler, cTimer::StartTime(), Timers, and tr.

Referenced by main(), and cMenuSetup::Restart().

bool cShutdownHandler::ConfirmShutdown ( bool  Ask)

Check for background activity that blocks shutdown.

Returns immediately and without user interaction if Ask = false. Asks for confirmation if Ask = true. Returns true if ready for shutdown.

Definition at line 160 of file shutdown.c.

References cPluginManager::Active(), cRecordControls::Active(), cRecordingsHandler::Active(), cInterface::Confirm(), cRemote::Enabled(), cTimers::GetNextActiveTimer(), cPluginManager::GetNextWakeupPlugin(), Interface, cSkins::Message(), cSetup::MinEventTimeout, mtError, cPlugin::Name(), RecordingsHandler, Setup, Skins, cString::sprintf(), cTimer::StartTime(), Timers, tr, and cPlugin::WakeupTime().

Referenced by main().

bool cShutdownHandler::DoExit ( void  )
inline

Check if an exit code was set, and VDR should exit.

Definition at line 57 of file shutdown.h.

Referenced by main().

bool cShutdownHandler::DoShutdown ( bool  Force)

Call the shutdown script with data of the next pending timer.

Fails if Force = false and a timer is running or within MinEventTimeout. Always calls shutdown on Force = true. Returns true on success.

Definition at line 234 of file shutdown.c.

References cTimer::Channel(), dsyslog, cTimer::File(), cTimers::GetNextActiveTimer(), cPluginManager::GetNextWakeupPlugin(), cSetup::MinEventTimeout, cPlugin::Name(), cChannel::Number(), Setup, cTimer::StartTime(), Timers, TimeToString(), and cPlugin::WakeupTime().

Referenced by main().

bool cShutdownHandler::EmergencyExitRequested ( void  )
inline

Returns true if an emergency exit was requested.

Definition at line 61 of file shutdown.h.

Referenced by main().

void cShutdownHandler::Exit ( int  ExitCode)
inline

Set VDR exit code and initiate end of VDR main loop.

This will exit VDR without any confirmation.

Definition at line 54 of file shutdown.h.

Referenced by cMenuSetup::Restart(), and SignalHandler().

int cShutdownHandler::GetExitCode ( void  )
inline

Get the currently set exit code of VDR.

Definition at line 59 of file shutdown.h.

Referenced by main().

time_t cShutdownHandler::GetRetry ( void  )
inline

Time when shutdown retry block ends.

Definition at line 91 of file shutdown.h.

time_t cShutdownHandler::GetUserInactiveTime ( void  )
inline

Time when user will become non-inactive, or 0 if never, 1 if a long time ago.

Definition at line 75 of file shutdown.h.

bool cShutdownHandler::IsUserInactive ( time_t  AtTime = 0)
inline

Check whether VDR is in interactive mode or non-interactive mode (waiting for shutdown).

AtTime checks whether VDR will probably be inactive at that time.

Definition at line 72 of file shutdown.h.

Referenced by main(), and cPluginDvbhddevice::MainThreadHook().

void cShutdownHandler::RequestEmergencyExit ( void  )

Requests an emergency exit of the VDR main loop.

Definition at line 96 of file shutdown.c.

References dsyslog, cSetup::EmergencyExit, esyslog, and Setup.

Referenced by cRecorder::Action(), and cRecordControls::Start().

bool cShutdownHandler::Retry ( time_t  AtTime = 0)
inline

Check whether its time to re-try the shutdown.

AtTime checks whether VDR will probably be inactive at that time.

Definition at line 88 of file shutdown.h.

Referenced by main().

void cShutdownHandler::SetRetry ( int  Seconds)
inline

Set shutdown retry so that VDR will not try to automatically shut down within Seconds.

Definition at line 93 of file shutdown.h.

References ShutdownHandler.

Referenced by main().

void cShutdownHandler::SetShutdownCommand ( const char *  ShutdownCommand)

Set the command string for shutdown command.

Definition at line 124 of file shutdown.c.

Referenced by main().

void cShutdownHandler::SetUserInactive ( void  )
inline

Set VDR manually into non-interactive mode from now on.

Definition at line 86 of file shutdown.h.

Referenced by main().

void cShutdownHandler::SetUserInactiveTimeout ( int  Seconds = -1,
bool  Force = false 
)

Set the time in the future when VDR will switch into non-interactive mode or power down.

Seconds >= 0 means that many seconds in the future. Seconds = -1 means Setup.MinUserInactivity in the future. Seconds = -2 means never. Seconds = -3 means a long, unknown time ago. Setup.MinUserInactivity = 0 will overrule this, unless Force = true is given. If Setup.MinUserInactivity = 0 and Force = false, Seconds is ignored and VDR will stay interactive forever (like Seconds = -2).

Definition at line 144 of file shutdown.c.

References cSetup::MinUserInactivity, and Setup.

Referenced by main().

Member Data Documentation

time_t cShutdownHandler::activeTimeout
private

Time when VDR will become non-interactive. 0 means never, 1 means unknown time ago.

Definition at line 40 of file shutdown.h.

cCountdown cShutdownHandler::countdown

Definition at line 51 of file shutdown.h.

Referenced by main().

bool cShutdownHandler::emergencyExitRequested
private

The requested exit is an emergency exit.

Definition at line 48 of file shutdown.h.

int cShutdownHandler::exitCode
private

Exit code, if VDR exit was requested, or -1 if not requested.

Definition at line 46 of file shutdown.h.

time_t cShutdownHandler::retry
private

Time for retrying the shutdown.

Definition at line 42 of file shutdown.h.

char* cShutdownHandler::shutdownCommand
private

Command for shutting down VDR.

Definition at line 44 of file shutdown.h.


The documentation for this class was generated from the following files: