MythTV  master
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Scheduler Class Reference

#include <scheduler.h>

Inheritance diagram for Scheduler:
Inheritance graph
[legend]
Collaboration diagram for Scheduler:
Collaboration graph
[legend]

Public Types

enum  SchedSortColumn {
  kSortTitle, kSortLastRecorded, kSortNextRecording, kSortPriority,
  kSortType
}
 

Public Member Functions

 Scheduler (bool runthread, QMap< int, EncoderLink * > *tvList, QString recordTbl="record", Scheduler *master_sched=nullptr)
 
 ~Scheduler ()
 
void Stop (void)
 
void Wait (void)
 
void SetExpirer (AutoExpire *autoExpirer)
 
void Reschedule (const QStringList &request)
 
void RescheduleMatch (uint recordid, uint sourceid, uint mplexid, const QDateTime &maxstarttime, const QString &why)
 
void RescheduleCheck (const RecordingInfo &recinfo, const QString &why)
 
void ReschedulePlace (const QString &why)
 
void AddRecording (const RecordingInfo &)
 
void AddRecording (const ProgramInfo &prog)
 
void FillRecordListFromDB (uint recordid=0)
 
void FillRecordListFromMaster (void)
 
void UpdateRecStatus (RecordingInfo *pginfo)
 
void UpdateRecStatus (uint cardid, uint chanid, const QDateTime &startts, RecStatus::Type recstatus, const QDateTime &recendts)
 
bool GetAllPending (RecList &retList, int recRuleId=0) const
 
bool GetAllPending (ProgramList &retList, int recRuleId=0) const
 
void GetAllPending (QStringList &strList) const override
 
QMap< QString, ProgramInfo * > GetRecording (void) const override
 
void getConflicting (RecordingInfo *pginfo, QStringList &strlist)
 
void getConflicting (RecordingInfo *pginfo, RecList *retlist)
 
void PrintList (bool onlyFutureRecordings=false)
 
void PrintList (RecList &list, bool onlyFutureRecordings=false)
 
void PrintRec (const RecordingInfo *p, const QString &prefix="")
 
void SetMainServer (MainServer *ms)
 
void SlaveConnected (RecordingList &slavelist)
 
void SlaveDisconnected (uint cardid)
 
void DisableScheduling (void)
 
void EnableScheduling (void)
 
void GetNextLiveTVDir (uint cardid)
 
void ResetIdleTime (void)
 
bool WasStartedAutomatically ()
 
RecStatus::Type GetRecStatus (const ProgramInfo &pginfo)
 
int GetError (void) const
 
void AddChildInput (uint parentid, uint childid)
 
- Public Member Functions inherited from MThread
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (unsigned long time=ULONG_MAX)
 Wait for the MThread to exit, with a maximum timeout. More...
 
- Public Member Functions inherited from MythScheduler
 MythScheduler ()=default
 
virtual ~MythScheduler ()=default
 

Static Public Member Functions

static void GetAllScheduled (QStringList &strList, SchedSortColumn sortBy=kSortTitle, bool ascending=true)
 Returns all scheduled programs serialized into a QStringList. More...
 
static void GetAllScheduled (RecList &proglist, SchedSortColumn sortBy=kSortTitle, bool ascending=true)
 Returns all scheduled programs. More...
 
- Static Public Member Functions inherited from MThread
static void ThreadSetup (const QString &)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 

Protected Member Functions

void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 

Private Types

enum  OpenEndType { openEndNever = 0, openEndDiffChannel = 1, openEndAlways = 2 }
 
typedef pair< const RecordingInfo *, const RecordingInfo * > IsSameKey
 
typedef QMap< IsSameKey, boolIsSameCacheType
 

Private Member Functions

bool VerifyCards (void)
 
bool InitInputInfoMap (void)
 
void CreateTempTables (void)
 
void DeleteTempTables (void)
 
void UpdateDuplicates (void)
 
bool FillRecordList (void)
 
void UpdateMatches (uint recordid, uint sourceid, uint mplexid, const QDateTime &maxstarttime)
 
void UpdateManuals (uint recordid)
 
void BuildWorkList (void)
 
bool ClearWorkList (void)
 
void AddNewRecords (void)
 
void AddNotListed (void)
 
void BuildNewRecordsQueries (uint recordid, QStringList &from, QStringList &where, MSqlBindings &bindings)
 
void PruneOverlaps (void)
 
void BuildListMaps (void)
 
void ClearListMaps (void)
 
bool IsBusyRecording (const RecordingInfo *rcinfo)
 
bool IsSameProgram (const RecordingInfo *a, const RecordingInfo *b) const
 
bool FindNextConflict (const RecList &cardlist, const RecordingInfo *p, RecConstIter &iter, OpenEndType openEnd=openEndNever, uint *paffinity=nullptr) const
 
const RecordingInfoFindConflict (const RecordingInfo *p, OpenEndType openEnd=openEndNever, uint *affinity=nullptr, bool checkAll=false) const
 
void MarkOtherShowings (RecordingInfo *p)
 
void MarkShowingsList (RecList &showinglist, RecordingInfo *p)
 
void BackupRecStatus (void)
 
void RestoreRecStatus (void)
 
bool TryAnotherShowing (RecordingInfo *p, bool samePriority, bool livetv=false)
 
void SchedNewRecords (void)
 
void SchedNewFirstPass (RecIter &start, RecIter end, int recpriority, int recpriority2)
 
void SchedNewRetryPass (RecIter start, RecIter end, bool samePriority, bool livetv=false)
 
void SchedLiveTV (void)
 
void PruneRedundants (void)
 
void UpdateNextRecord (void)
 
bool ChangeRecordingEnd (RecordingInfo *oldp, RecordingInfo *newp)
 
bool CheckShutdownServer (int prerollseconds, QDateTime &idleSince, bool &blockShutdown, uint logmask)
 
void ShutdownServer (int prerollseconds, QDateTime &idleSince)
 
void PutInactiveSlavesToSleep (void)
 
bool WakeUpSlave (QString slaveHostname, bool setWakingStatus=true)
 
void WakeUpSlaves (void)
 
int FillRecordingDir (const QString &title, const QString &hostname, const QString &storagegroup, const QDateTime &recstartts, const QDateTime &recendts, uint cardid, QString &recording_dir, const RecList &reclist)
 
void FillDirectoryInfoCache (void)
 
void OldRecordedFixups (void)
 
void ResetDuplicates (uint recordid, uint findid, const QString &title, const QString &subtitle, const QString &descrip, const QString &programid)
 
bool HandleReschedule (void)
 
bool HandleRunSchedulerStartup (int prerollseconds, int idleWaitForRecordingTime)
 
void HandleWakeSlave (RecordingInfo &ri, int prerollseconds)
 
bool HandleRecording (RecordingInfo &ri, bool &statuschanged, QDateTime &nextStartTime, QDateTime &nextWakeTime, int prerollseconds)
 
void HandleRecordingStatusChange (RecordingInfo &ri, RecStatus::Type recStatus, const QString &details)
 
bool AssignGroupInput (RecordingInfo &ri, int prerollseconds)
 
void HandleIdleShutdown (bool &blockShutdown, QDateTime &idleSince, int prerollseconds, int idleTimeoutSecs, int idleWaitForRecordingTime, bool &statuschanged)
 
void EnqueueMatch (uint recordid, uint sourceid, uint mplexid, const QDateTime &maxstarttime, const QString &why)
 
void EnqueueCheck (const RecordingInfo &recinfo, const QString &why)
 
void EnqueuePlace (const QString &why)
 
bool HaveQueuedRequests (void)
 
void ClearRequestQueue (void)
 
bool CreateConflictLists (void)
 

Private Attributes

QString recordTable
 
QString priorityTable
 
MythDeque< QStringList > reschedQueue
 
QMutex schedLock
 
QMutex recordmatchLock
 
QWaitCondition reschedWait
 
RecList reclist
 
RecList worklist
 
RecList livetvlist
 
QMap< uint, SchedInputInfosinputinfomap
 
vector< RecList * > conflictlists
 
QMap< uint, RecListrecordidlistmap
 
QMap< QString, RecListtitlelistmap
 
QDateTime schedTime
 
bool reclist_changed
 
bool specsched
 
bool schedulingEnabled
 
QMap< int, boolschedAfterStartMap
 
QMap< int, EncoderLink * > * m_tvList
 
AutoExpirem_expirer
 
QSet< uintm_schedorder_warned
 
bool doRun
 
MainServerm_mainServer
 
QMutex resetIdleTime_lock
 
bool resetIdleTime
 
bool m_isShuttingDown
 
MSqlQueryInfo dbConn
 
QMap< QString, FileSystemInfofsInfoCache
 
int error
 
QSet< QString > sysEvents [4]
 
QDateTime livetvTime
 
QDateTime lastPrepareTime
 
OpenEndType m_openEnd
 
IsSameCacheType cache_is_same_program
 
int tmLastLog
 

Additional Inherited Members

- Static Public Attributes inherited from MThread
static const int kDefaultStartTimeout
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void sleep (unsigned long time)
 
static void msleep (unsigned long time)
 
static void usleep (unsigned long time)
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread
 
QRunnable * m_runnable
 
bool m_prolog_executed
 
bool m_epilog_executed
 

Detailed Description

Definition at line 52 of file scheduler.h.

Member Typedef Documentation

◆ IsSameKey

typedef pair<const RecordingInfo*,const RecordingInfo*> Scheduler::IsSameKey
private

Definition at line 290 of file scheduler.h.

◆ IsSameCacheType

typedef QMap<IsSameKey,bool> Scheduler::IsSameCacheType
private

Definition at line 291 of file scheduler.h.

Member Enumeration Documentation

◆ SchedSortColumn

Enumerator
kSortTitle 
kSortLastRecorded 
kSortNextRecording 
kSortPriority 
kSortType 

Definition at line 91 of file scheduler.h.

◆ OpenEndType

enum Scheduler::OpenEndType
private
Enumerator
openEndNever 
openEndDiffChannel 
openEndAlways 

Definition at line 130 of file scheduler.h.

Constructor & Destructor Documentation

◆ Scheduler()

Scheduler::Scheduler ( bool  runthread,
QMap< int, EncoderLink * > *  tvList,
QString  recordTbl = "record",
Scheduler master_sched = nullptr 
)

Definition at line 57 of file scheduler.cpp.

◆ ~Scheduler()

Scheduler::~Scheduler ( )

Definition at line 111 of file scheduler.cpp.

Member Function Documentation

◆ Stop()

void Scheduler::Stop ( void  )

Definition at line 147 of file scheduler.cpp.

Referenced by MainServer::Stop().

◆ Wait()

void Scheduler::Wait ( void  )
inline

Definition at line 60 of file scheduler.h.

Referenced by MainServer::Stop().

◆ SetExpirer()

void Scheduler::SetExpirer ( AutoExpire autoExpirer)
inline

Definition at line 62 of file scheduler.h.

Referenced by run_backend().

◆ Reschedule()

void Scheduler::Reschedule ( const QStringList &  request)

◆ RescheduleMatch()

void Scheduler::RescheduleMatch ( uint  recordid,
uint  sourceid,
uint  mplexid,
const QDateTime &  maxstarttime,
const QString &  why 
)
inline

Definition at line 65 of file scheduler.h.

Referenced by MainServer::HandleGetPendingRecordings().

◆ RescheduleCheck()

void Scheduler::RescheduleCheck ( const RecordingInfo recinfo,
const QString &  why 
)
inline

◆ ReschedulePlace()

void Scheduler::ReschedulePlace ( const QString &  why)
inline

◆ AddRecording() [1/2]

void Scheduler::AddRecording ( const RecordingInfo pi)

Definition at line 1889 of file scheduler.cpp.

Referenced by MainServer::customEvent().

◆ AddRecording() [2/2]

void Scheduler::AddRecording ( const ProgramInfo prog)
inline

Definition at line 75 of file scheduler.h.

◆ FillRecordListFromDB()

void Scheduler::FillRecordListFromDB ( uint  recordid = 0)
Parameters
recordidRecord ID of recording that has changed, or 0 if anything might have been changed.

Definition at line 486 of file scheduler.cpp.

Referenced by handle_command(), and MainServer::HandleGetPendingRecordings().

◆ FillRecordListFromMaster()

void Scheduler::FillRecordListFromMaster ( void  )

Definition at line 576 of file scheduler.cpp.

Referenced by handle_command().

◆ UpdateRecStatus() [1/2]

void Scheduler::UpdateRecStatus ( RecordingInfo pginfo)

Definition at line 645 of file scheduler.cpp.

Referenced by MainServer::customEvent(), and MainServer::DoHandleStopRecording().

◆ UpdateRecStatus() [2/2]

void Scheduler::UpdateRecStatus ( uint  cardid,
uint  chanid,
const QDateTime &  startts,
RecStatus::Type  recstatus,
const QDateTime &  recendts 
)

Definition at line 704 of file scheduler.cpp.

◆ GetAllPending() [1/3]

bool Scheduler::GetAllPending ( RecList retList,
int  recRuleId = 0 
) const

◆ GetAllPending() [2/3]

bool Scheduler::GetAllPending ( ProgramList retList,
int  recRuleId = 0 
) const

Definition at line 1789 of file scheduler.cpp.

◆ GetAllPending() [3/3]

void Scheduler::GetAllPending ( QStringList &  strList) const
overridevirtual

Implements MythScheduler.

Definition at line 1846 of file scheduler.cpp.

◆ GetRecording()

QMap< QString, ProgramInfo * > Scheduler::GetRecording ( void  ) const
overridevirtual

Implements MythScheduler.

Definition at line 1810 of file scheduler.cpp.

Referenced by MainServer::HandleQueryRecordings().

◆ GetAllScheduled() [1/2]

void Scheduler::GetAllScheduled ( QStringList &  strList,
SchedSortColumn  sortBy = kSortTitle,
bool  ascending = true 
)
static

Returns all scheduled programs serialized into a QStringList.

Definition at line 1864 of file scheduler.cpp.

Referenced by Dvr::GetRecordScheduleList(), and MainServer::HandleGetScheduledRecordings().

◆ GetAllScheduled() [2/2]

void Scheduler::GetAllScheduled ( RecList proglist,
SchedSortColumn  sortBy = kSortTitle,
bool  ascending = true 
)
static

Returns all scheduled programs.

Note
Caller is responsible for deleting the RecordingInfo's returned.

Definition at line 4864 of file scheduler.cpp.

◆ getConflicting() [1/2]

void Scheduler::getConflicting ( RecordingInfo pginfo,
QStringList &  strlist 
)

Definition at line 1740 of file scheduler.cpp.

Referenced by MainServer::HandleGetConflictingRecordings().

◆ getConflicting() [2/2]

void Scheduler::getConflicting ( RecordingInfo pginfo,
RecList retlist 
)

Definition at line 1756 of file scheduler.cpp.

◆ PrintList() [1/2]

void Scheduler::PrintList ( bool  onlyFutureRecordings = false)
inline

Definition at line 103 of file scheduler.h.

Referenced by handle_command(), and HandleReschedule().

◆ PrintList() [2/2]

void Scheduler::PrintList ( RecList list,
bool  onlyFutureRecordings = false 
)

Definition at line 589 of file scheduler.cpp.

◆ PrintRec()

void Scheduler::PrintRec ( const RecordingInfo p,
const QString &  prefix = "" 
)

Definition at line 617 of file scheduler.cpp.

Referenced by PrintList(), SchedNewFirstPass(), SchedNewRetryPass(), and TryAnotherShowing().

◆ SetMainServer()

void Scheduler::SetMainServer ( MainServer ms)

Definition at line 154 of file scheduler.cpp.

Referenced by MainServer::MainServer(), and MainServer::Stop().

◆ SlaveConnected()

void Scheduler::SlaveConnected ( RecordingList slavelist)

Definition at line 834 of file scheduler.cpp.

Referenced by MainServer::HandleAnnounce().

◆ SlaveDisconnected()

void Scheduler::SlaveDisconnected ( uint  cardid)

Definition at line 914 of file scheduler.cpp.

Referenced by MainServer::HandleSlaveDisconnectedEvent().

◆ DisableScheduling()

void Scheduler::DisableScheduling ( void  )
inline

Definition at line 113 of file scheduler.h.

Referenced by run_backend().

◆ EnableScheduling()

void Scheduler::EnableScheduling ( void  )
inline

Definition at line 114 of file scheduler.h.

◆ GetNextLiveTVDir()

void Scheduler::GetNextLiveTVDir ( uint  cardid)

Definition at line 5061 of file scheduler.cpp.

Referenced by MainServer::customEvent().

◆ ResetIdleTime()

void Scheduler::ResetIdleTime ( void  )

Definition at line 159 of file scheduler.cpp.

Referenced by MainServer::customEvent().

◆ WasStartedAutomatically()

bool Scheduler::WasStartedAutomatically ( )

Definition at line 5664 of file scheduler.cpp.

Referenced by HandleRunSchedulerStartup().

◆ GetRecStatus()

RecStatus::Type Scheduler::GetRecStatus ( const ProgramInfo pginfo)

Definition at line 1827 of file scheduler.cpp.

Referenced by MainServer::customEvent().

◆ GetError()

int Scheduler::GetError ( void  ) const
inline

Definition at line 122 of file scheduler.h.

Referenced by run_backend().

◆ AddChildInput()

void Scheduler::AddChildInput ( uint  parentid,
uint  childid 
)

Definition at line 5842 of file scheduler.cpp.

Referenced by MainServer::HandleAddChildInput().

◆ run()

void Scheduler::run ( void  )
overrideprotectedvirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 2053 of file scheduler.cpp.

◆ VerifyCards()

bool Scheduler::VerifyCards ( void  )
private

Definition at line 166 of file scheduler.cpp.

Referenced by Scheduler().

◆ InitInputInfoMap()

bool Scheduler::InitInputInfoMap ( void  )
private

Definition at line 5799 of file scheduler.cpp.

Referenced by Scheduler().

◆ CreateTempTables()

void Scheduler::CreateTempTables ( void  )
private

Definition at line 4140 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ DeleteTempTables()

void Scheduler::DeleteTempTables ( void  )
private

Definition at line 4188 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ UpdateDuplicates()

void Scheduler::UpdateDuplicates ( void  )
private

Definition at line 4204 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ FillRecordList()

bool Scheduler::FillRecordList ( void  )
private

Definition at line 435 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ UpdateMatches()

void Scheduler::UpdateMatches ( uint  recordid,
uint  sourceid,
uint  mplexid,
const QDateTime &  maxstarttime 
)
private

Definition at line 3969 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ UpdateManuals()

void Scheduler::UpdateManuals ( uint  recordid)
private

Definition at line 3697 of file scheduler.cpp.

Referenced by BuildNewRecordsQueries().

◆ BuildWorkList()

void Scheduler::BuildWorkList ( void  )
private

Definition at line 948 of file scheduler.cpp.

Referenced by FillRecordList().

◆ ClearWorkList()

bool Scheduler::ClearWorkList ( void  )
private

Definition at line 962 of file scheduler.cpp.

Referenced by FillRecordList().

◆ AddNewRecords()

void Scheduler::AddNewRecords ( void  )
private

Definition at line 4312 of file scheduler.cpp.

Referenced by FillRecordList().

◆ AddNotListed()

void Scheduler::AddNotListed ( void  )
private

Definition at line 4736 of file scheduler.cpp.

Referenced by FillRecordList().

◆ BuildNewRecordsQueries()

void Scheduler::BuildNewRecordsQueries ( uint  recordid,
QStringList &  from,
QStringList &  where,
MSqlBindings bindings 
)
private

Definition at line 3807 of file scheduler.cpp.

Referenced by UpdateMatches().

◆ PruneOverlaps()

void Scheduler::PruneOverlaps ( void  )
private

Definition at line 1010 of file scheduler.cpp.

Referenced by FillRecordList().

◆ BuildListMaps()

void Scheduler::BuildListMaps ( void  )
private

Definition at line 1034 of file scheduler.cpp.

Referenced by FillRecordList().

◆ ClearListMaps()

void Scheduler::ClearListMaps ( void  )
private

Definition at line 1071 of file scheduler.cpp.

Referenced by FillRecordList().

◆ IsBusyRecording()

bool Scheduler::IsBusyRecording ( const RecordingInfo rcinfo)
private

Definition at line 1931 of file scheduler.cpp.

Referenced by HandleRecording().

◆ IsSameProgram()

bool Scheduler::IsSameProgram ( const RecordingInfo a,
const RecordingInfo b 
) const
private

Definition at line 1080 of file scheduler.cpp.

Referenced by MarkShowingsList(), and TryAnotherShowing().

◆ FindNextConflict()

bool Scheduler::FindNextConflict ( const RecList cardlist,
const RecordingInfo p,
RecConstIter iter,
OpenEndType  openEnd = openEndNever,
uint paffinity = nullptr 
) const
private

◆ FindConflict()

const RecordingInfo * Scheduler::FindConflict ( const RecordingInfo p,
OpenEndType  openEnd = openEndNever,
uint affinity = nullptr,
bool  checkAll = false 
) const
private

Definition at line 1196 of file scheduler.cpp.

Referenced by SchedNewFirstPass(), and TryAnotherShowing().

◆ MarkOtherShowings()

void Scheduler::MarkOtherShowings ( RecordingInfo p)
private

◆ MarkShowingsList()

void Scheduler::MarkShowingsList ( RecList showinglist,
RecordingInfo p 
)
private

Definition at line 1237 of file scheduler.cpp.

Referenced by MarkOtherShowings().

◆ BackupRecStatus()

void Scheduler::BackupRecStatus ( void  )
private

Definition at line 1264 of file scheduler.cpp.

Referenced by SchedNewRetryPass().

◆ RestoreRecStatus()

void Scheduler::RestoreRecStatus ( void  )
private

Definition at line 1274 of file scheduler.cpp.

Referenced by SchedNewRetryPass().

◆ TryAnotherShowing()

bool Scheduler::TryAnotherShowing ( RecordingInfo p,
bool  samePriority,
bool  livetv = false 
)
private

Definition at line 1284 of file scheduler.cpp.

Referenced by SchedNewRetryPass().

◆ SchedNewRecords()

void Scheduler::SchedNewRecords ( void  )
private

Definition at line 1394 of file scheduler.cpp.

Referenced by FillRecordList().

◆ SchedNewFirstPass()

void Scheduler::SchedNewFirstPass ( RecIter start,
RecIter  end,
int  recpriority,
int  recpriority2 
)
private

Definition at line 1464 of file scheduler.cpp.

Referenced by SchedNewRecords().

◆ SchedNewRetryPass()

void Scheduler::SchedNewRetryPass ( RecIter  start,
RecIter  end,
bool  samePriority,
bool  livetv = false 
)
private

Definition at line 1541 of file scheduler.cpp.

Referenced by SchedLiveTV(), and SchedNewRecords().

◆ SchedLiveTV()

void Scheduler::SchedLiveTV ( void  )
private

Definition at line 5608 of file scheduler.cpp.

Referenced by FillRecordList().

◆ PruneRedundants()

void Scheduler::PruneRedundants ( void  )
private

Definition at line 1592 of file scheduler.cpp.

Referenced by FillRecordList().

◆ UpdateNextRecord()

void Scheduler::UpdateNextRecord ( void  )
private

Definition at line 1673 of file scheduler.cpp.

Referenced by HandleRecordingStatusChange(), and HandleReschedule().

◆ ChangeRecordingEnd()

bool Scheduler::ChangeRecordingEnd ( RecordingInfo oldp,
RecordingInfo newp 
)
private

Definition at line 754 of file scheduler.cpp.

Referenced by AddNewRecords().

◆ CheckShutdownServer()

bool Scheduler::CheckShutdownServer ( int  prerollseconds,
QDateTime &  idleSince,
bool blockShutdown,
uint  logmask 
)
private

Definition at line 3287 of file scheduler.cpp.

Referenced by HandleIdleShutdown().

◆ ShutdownServer()

void Scheduler::ShutdownServer ( int  prerollseconds,
QDateTime &  idleSince 
)
private

Definition at line 3345 of file scheduler.cpp.

Referenced by HandleIdleShutdown().

◆ PutInactiveSlavesToSleep()

void Scheduler::PutInactiveSlavesToSleep ( void  )
private

Definition at line 3459 of file scheduler.cpp.

Referenced by run().

◆ WakeUpSlave()

bool Scheduler::WakeUpSlave ( QString  slaveHostname,
bool  setWakingStatus = true 
)
private

Definition at line 3613 of file scheduler.cpp.

Referenced by HandleWakeSlave(), and WakeUpSlaves().

◆ WakeUpSlaves()

void Scheduler::WakeUpSlaves ( void  )
private

Definition at line 3664 of file scheduler.cpp.

Referenced by Scheduler().

◆ FillRecordingDir()

int Scheduler::FillRecordingDir ( const QString &  title,
const QString &  hostname,
const QString &  storagegroup,
const QDateTime &  recstartts,
const QDateTime &  recendts,
uint  cardid,
QString &  recording_dir,
const RecList reclist 
)
private

Definition at line 5088 of file scheduler.cpp.

Referenced by GetNextLiveTVDir(), and HandleRecording().

◆ FillDirectoryInfoCache()

void Scheduler::FillDirectoryInfoCache ( void  )
private

Definition at line 5586 of file scheduler.cpp.

Referenced by FillRecordingDir().

◆ OldRecordedFixups()

void Scheduler::OldRecordedFixups ( void  )
private

Definition at line 2008 of file scheduler.cpp.

Referenced by run().

◆ ResetDuplicates()

void Scheduler::ResetDuplicates ( uint  recordid,
uint  findid,
const QString &  title,
const QString &  subtitle,
const QString &  descrip,
const QString &  programid 
)
private

Definition at line 2251 of file scheduler.cpp.

Referenced by HandleReschedule().

◆ HandleReschedule()

bool Scheduler::HandleReschedule ( void  )
private

Definition at line 2328 of file scheduler.cpp.

Referenced by run().

◆ HandleRunSchedulerStartup()

bool Scheduler::HandleRunSchedulerStartup ( int  prerollseconds,
int  idleWaitForRecordingTime 
)
private

Definition at line 2504 of file scheduler.cpp.

Referenced by run().

◆ HandleWakeSlave()

void Scheduler::HandleWakeSlave ( RecordingInfo ri,
int  prerollseconds 
)
private

Definition at line 2555 of file scheduler.cpp.

Referenced by run().

◆ HandleRecording()

bool Scheduler::HandleRecording ( RecordingInfo ri,
bool statuschanged,
QDateTime &  nextStartTime,
QDateTime &  nextWakeTime,
int  prerollseconds 
)
private

Definition at line 2661 of file scheduler.cpp.

Referenced by run().

◆ HandleRecordingStatusChange()

void Scheduler::HandleRecordingStatusChange ( RecordingInfo ri,
RecStatus::Type  recStatus,
const QString &  details 
)
private

Definition at line 2911 of file scheduler.cpp.

Referenced by HandleRecording().

◆ AssignGroupInput()

bool Scheduler::AssignGroupInput ( RecordingInfo ri,
int  prerollseconds 
)
private

Definition at line 2949 of file scheduler.cpp.

Referenced by HandleRecording().

◆ HandleIdleShutdown()

void Scheduler::HandleIdleShutdown ( bool blockShutdown,
QDateTime &  idleSince,
int  prerollseconds,
int  idleTimeoutSecs,
int  idleWaitForRecordingTime,
bool statuschanged 
)
private

Definition at line 3087 of file scheduler.cpp.

Referenced by run().

◆ EnqueueMatch()

void Scheduler::EnqueueMatch ( uint  recordid,
uint  sourceid,
uint  mplexid,
const QDateTime &  maxstarttime,
const QString &  why 
)
inlineprivate

Definition at line 225 of file scheduler.h.

Referenced by AddRecording(), and run().

◆ EnqueueCheck()

void Scheduler::EnqueueCheck ( const RecordingInfo recinfo,
const QString &  why 
)
inlineprivate

Definition at line 229 of file scheduler.h.

Referenced by UpdateRecStatus().

◆ EnqueuePlace()

void Scheduler::EnqueuePlace ( const QString &  why)
inlineprivate

Definition at line 232 of file scheduler.h.

Referenced by HandleRecording(), HandleReschedule(), and HandleWakeSlave().

◆ HaveQueuedRequests()

bool Scheduler::HaveQueuedRequests ( void  )
inlineprivate

Definition at line 235 of file scheduler.h.

Referenced by HandleReschedule(), and run().

◆ ClearRequestQueue()

void Scheduler::ClearRequestQueue ( void  )
inlineprivate

Definition at line 237 of file scheduler.h.

Referenced by run().

◆ CreateConflictLists()

bool Scheduler::CreateConflictLists ( void  )
private

Definition at line 5709 of file scheduler.cpp.

Referenced by InitInputInfoMap().

Member Data Documentation

◆ recordTable

QString Scheduler::recordTable
private

◆ priorityTable

QString Scheduler::priorityTable
private

Definition at line 137 of file scheduler.h.

Referenced by AddNewRecords(), and Scheduler().

◆ reschedQueue

MythDeque<QStringList> Scheduler::reschedQueue
private

Definition at line 242 of file scheduler.h.

Referenced by HandleReschedule(), and Reschedule().

◆ schedLock

QMutex Scheduler::schedLock
mutableprivate

◆ recordmatchLock

QMutex Scheduler::recordmatchLock
private

Definition at line 244 of file scheduler.h.

Referenced by FillRecordListFromDB(), and HandleReschedule().

◆ reschedWait

QWaitCondition Scheduler::reschedWait
private

Definition at line 245 of file scheduler.h.

Referenced by AddRecording(), Reschedule(), run(), Scheduler(), Stop(), UpdateRecStatus(), and ~Scheduler().

◆ reclist

RecList Scheduler::reclist
private

◆ worklist

RecList Scheduler::worklist
private

◆ livetvlist

RecList Scheduler::livetvlist
private

Definition at line 248 of file scheduler.h.

Referenced by SchedLiveTV(), and TryAnotherShowing().

◆ sinputinfomap

QMap<uint, SchedInputInfo> Scheduler::sinputinfomap
private

◆ conflictlists

vector<RecList *> Scheduler::conflictlists
private

Definition at line 250 of file scheduler.h.

Referenced by ClearListMaps(), CreateConflictLists(), and ~Scheduler().

◆ recordidlistmap

QMap<uint, RecList> Scheduler::recordidlistmap
private

Definition at line 251 of file scheduler.h.

Referenced by BuildListMaps(), ClearListMaps(), MarkOtherShowings(), and TryAnotherShowing().

◆ titlelistmap

QMap<QString, RecList> Scheduler::titlelistmap
private

Definition at line 252 of file scheduler.h.

Referenced by BuildListMaps(), ClearListMaps(), and MarkOtherShowings().

◆ schedTime

QDateTime Scheduler::schedTime
private

◆ reclist_changed

bool Scheduler::reclist_changed
private

◆ specsched

bool Scheduler::specsched
private

Definition at line 257 of file scheduler.h.

Referenced by AddNewRecords(), ChangeRecordingEnd(), and UpdateNextRecord().

◆ schedulingEnabled

bool Scheduler::schedulingEnabled
private

Definition at line 258 of file scheduler.h.

Referenced by HandleRecording().

◆ schedAfterStartMap

QMap<int, bool> Scheduler::schedAfterStartMap
private

Definition at line 259 of file scheduler.h.

Referenced by AddNewRecords(), and HandleRecordingStatusChange().

◆ m_tvList

QMap<int, EncoderLink *>* Scheduler::m_tvList
private

◆ m_expirer

AutoExpire* Scheduler::m_expirer
private

Definition at line 262 of file scheduler.h.

Referenced by FillRecordingDir(), GetNextLiveTVDir(), and HandleRecording().

◆ m_schedorder_warned

QSet<uint> Scheduler::m_schedorder_warned
private

Definition at line 264 of file scheduler.h.

Referenced by AddNewRecords().

◆ doRun

bool Scheduler::doRun
private

Definition at line 266 of file scheduler.h.

Referenced by AddNewRecords(), run(), Scheduler(), Stop(), and ~Scheduler().

◆ m_mainServer

MainServer* Scheduler::m_mainServer
private

◆ resetIdleTime_lock

QMutex Scheduler::resetIdleTime_lock
private

Definition at line 270 of file scheduler.h.

Referenced by HandleIdleShutdown(), and ResetIdleTime().

◆ resetIdleTime

bool Scheduler::resetIdleTime
private

Definition at line 271 of file scheduler.h.

Referenced by HandleIdleShutdown(), and ResetIdleTime().

◆ m_isShuttingDown

bool Scheduler::m_isShuttingDown
private

Definition at line 273 of file scheduler.h.

Referenced by HandleIdleShutdown(), and ShutdownServer().

◆ dbConn

MSqlQueryInfo Scheduler::dbConn
private

◆ fsInfoCache

QMap<QString, FileSystemInfo> Scheduler::fsInfoCache
private

Definition at line 276 of file scheduler.h.

Referenced by FillDirectoryInfoCache(), and FillRecordingDir().

◆ error

int Scheduler::error
private

Definition at line 278 of file scheduler.h.

◆ sysEvents

QSet<QString> Scheduler::sysEvents[4]
private

Definition at line 280 of file scheduler.h.

Referenced by HandleWakeSlave().

◆ livetvTime

QDateTime Scheduler::livetvTime
private

◆ lastPrepareTime

QDateTime Scheduler::lastPrepareTime
private

Definition at line 285 of file scheduler.h.

Referenced by HandleRecording().

◆ m_openEnd

OpenEndType Scheduler::m_openEnd
private

Definition at line 287 of file scheduler.h.

Referenced by SchedNewFirstPass(), and SchedNewRecords().

◆ cache_is_same_program

IsSameCacheType Scheduler::cache_is_same_program
mutableprivate

Definition at line 292 of file scheduler.h.

Referenced by ClearListMaps(), and IsSameProgram().

◆ tmLastLog

int Scheduler::tmLastLog
private

Definition at line 293 of file scheduler.h.

Referenced by HandleIdleShutdown(), and Scheduler().


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