Scheduler Class Reference

#include <scheduler.h>

List of all members.


Detailed Description

Definition at line 34 of file scheduler.h.


Public Member Functions

 Scheduler (bool runthread, QMap< int, EncoderLink * > *tvList, QString recordTbl="record", Scheduler *master_sched=NULL)
 ~Scheduler ()
void SetExpirer (AutoExpire *autoExpirer)
void Reschedule (int recordid)
void AddRecording (const ProgramInfo &)
void FillRecordListFromDB (int recordid=-1)
void FillRecordListFromMaster (void)
void UpdateRecStatus (ProgramInfo *pginfo)
void UpdateRecStatus (int cardid, const QString &chanid, const QDateTime &startts, RecStatusType recstatus, const QDateTime &recendts)
bool getAllPending (RecList *retList)
void getAllPending (QStringList &strList)
void getAllScheduled (QStringList &strList)
void getConflicting (ProgramInfo *pginfo, QStringList &strlist)
void getConflicting (ProgramInfo *pginfo, RecList *retlist)
void PrintList (bool onlyFutureRecordings=false)
void PrintList (RecList &list, bool onlyFutureRecordings=false)
void PrintRec (const ProgramInfo *p, const char *prefix=NULL)
void SetMainServer (MainServer *ms)
void SlaveConnected (ProgramList &slavelist)
void SlaveDisconnected (int cardid)
void DisableScheduling (void)
void EnableScheduling (void)
void GetNextLiveTVDir (int cardid)
void ResetIdleTime (void)

Protected Member Functions

void RunScheduler (void)

Static Protected Member Functions

static void * SchedulerThread (void *param)

Private Types

typedef pair< const
ProgramInfo *, const
ProgramInfo * > 
IsSameKey
typedef QMap< IsSameKey, boolIsSameCacheType

Private Member Functions

void verifyCards (void)
bool FillRecordList (void)
void UpdateMatches (int recordid)
void UpdateManuals (int recordid)
void BuildWorkList (void)
bool ClearWorkList (void)
void AddNewRecords (void)
void AddNotListed (void)
void BuildNewRecordsQueries (int recordid, QStringList &from, QStringList &where, MSqlBindings &bindings)
void PruneOverlaps (void)
void BuildListMaps (void)
void ClearListMaps (void)
bool IsBusyRecording (const ProgramInfo *rcinfo)
bool IsSameProgram (const ProgramInfo *a, const ProgramInfo *b) const
bool FindNextConflict (const RecList &cardlist, const ProgramInfo *p, RecConstIter &iter, bool openEnd=false) const
const ProgramInfoFindConflict (const QMap< int, RecList > &reclists, const ProgramInfo *p, bool openEnd=false) const
void MarkOtherShowings (ProgramInfo *p)
void MarkShowingsList (RecList &showinglist, ProgramInfo *p)
void BackupRecStatus (void)
void RestoreRecStatus (void)
bool TryAnotherShowing (ProgramInfo *p, bool samePriority, bool preserveLive=false)
void SchedNewRecords (void)
void MoveHigherRecords (bool move_this=true)
void SchedPreserveLiveTV (void)
void PruneRedundants (void)
void UpdateNextRecord (void)
bool ChangeRecordingEnd (ProgramInfo *oldp, ProgramInfo *newp)
void findAllScheduledPrograms (RecList &proglist)
bool CheckShutdownServer (int prerollseconds, QDateTime &idleSince, bool &blockShutdown)
void ShutdownServer (int prerollseconds, QDateTime &idleSince)
bool WasStartedAutomatically ()
int FillRecordingDir (ProgramInfo *pginfo, RecList &reclist)
void FillDirectoryInfoCache (bool force=false)

Private Attributes

QString recordTable
QString priorityTable
QValueList< int > reschedQueue
QMutex reschedLock
QMutex recordmatchLock
QWaitCondition reschedWait
RecList reclist
RecList worklist
RecList retrylist
QMap< int, RecListcardlistmap
QMap< int, RecListrecordidlistmap
QMap< QString, RecListtitlelistmap
InputGroupMap igrp
QMutex * reclist_lock
bool reclist_changed
bool specsched
bool schedMoveHigher
bool schedulingEnabled
QMap< int, boolschedAfterStartMap
QMap< int, EncoderLink * > * m_tvList
AutoExpireexpirer
QMap< QString, boolrecPendingList
pthread_t schedThread
bool threadrunning
MainServerm_mainServer
QMutex resetIdleTime_lock
bool resetIdleTime
bool m_isShuttingDown
MSqlQueryInfo dbConn
QDateTime fsInfoCacheFillTime
QMap< QString, FileSystemInfofsInfoCache
QDateTime livetvTime
int livetvpriority
int prefinputpri
QMap< QString, boolhasLaterList
IsSameCacheType cache_is_same_program

Member Typedef Documentation

typedef pair<const ProgramInfo*,const ProgramInfo*> Scheduler::IsSameKey [private]

Definition at line 178 of file scheduler.h.

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

Definition at line 179 of file scheduler.h.


Constructor & Destructor Documentation

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

Definition at line 43 of file scheduler.cpp.

Scheduler::~Scheduler (  ) 

Definition at line 100 of file scheduler.cpp.


Member Function Documentation

void Scheduler::SetExpirer ( AutoExpire autoExpirer  )  [inline]

Definition at line 41 of file scheduler.h.

Referenced by main().

void Scheduler::Reschedule ( int  recordid  ) 

void Scheduler::AddRecording ( const ProgramInfo pi  ) 

Definition at line 1423 of file scheduler.cpp.

Referenced by MainServer::customEvent().

void Scheduler::FillRecordListFromDB ( int  recordid = -1  ) 

Parameters:
recordid Record ID of recording that has changed, or -1 if anything might have been changed.

Definition at line 353 of file scheduler.cpp.

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

void Scheduler::FillRecordListFromMaster ( void   ) 

Definition at line 416 of file scheduler.cpp.

Referenced by main().

void Scheduler::UpdateRecStatus ( ProgramInfo pginfo  ) 

void Scheduler::UpdateRecStatus ( int  cardid,
const QString &  chanid,
const QDateTime &  startts,
RecStatusType  recstatus,
const QDateTime &  recendts 
)

Definition at line 504 of file scheduler.cpp.

bool Scheduler::getAllPending ( RecList retList  ) 

void Scheduler::getAllPending ( QStringList &  strList  ) 

Definition at line 1379 of file scheduler.cpp.

void Scheduler::getAllScheduled ( QStringList &  strList  ) 

Definition at line 1396 of file scheduler.cpp.

Referenced by MainServer::HandleGetScheduledRecordings().

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

Definition at line 1331 of file scheduler.cpp.

Referenced by MainServer::HandleGetConflictingRecordings().

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

Definition at line 1347 of file scheduler.cpp.

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

Definition at line 61 of file scheduler.h.

Referenced by main(), and RunScheduler().

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

Definition at line 428 of file scheduler.cpp.

void Scheduler::PrintRec ( const ProgramInfo p,
const char *  prefix = NULL 
)

Definition at line 455 of file scheduler.cpp.

Referenced by MoveHigherRecords(), PrintList(), SchedNewRecords(), and TryAnotherShowing().

void Scheduler::SetMainServer ( MainServer ms  ) 

Definition at line 125 of file scheduler.cpp.

Referenced by MainServer::MainServer().

void Scheduler::SlaveConnected ( ProgramList slavelist  ) 

Definition at line 587 of file scheduler.cpp.

Referenced by MainServer::HandleAnnounce().

void Scheduler::SlaveDisconnected ( int  cardid  ) 

Definition at line 646 of file scheduler.cpp.

Referenced by MainServer::connectionClosed().

void Scheduler::DisableScheduling ( void   )  [inline]

Definition at line 71 of file scheduler.h.

Referenced by main().

void Scheduler::EnableScheduling ( void   )  [inline]

Definition at line 72 of file scheduler.h.

void Scheduler::GetNextLiveTVDir ( int  cardid  ) 

Definition at line 3248 of file scheduler.cpp.

Referenced by MainServer::customEvent().

void Scheduler::ResetIdleTime ( void   ) 

Definition at line 130 of file scheduler.cpp.

Referenced by MainServer::customEvent().

void Scheduler::RunScheduler ( void   )  [protected]

Definition at line 1499 of file scheduler.cpp.

Referenced by SchedulerThread().

void * Scheduler::SchedulerThread ( void *  param  )  [static, protected]

Definition at line 2094 of file scheduler.cpp.

Referenced by Scheduler().

void Scheduler::verifyCards ( void   )  [private]

Definition at line 137 of file scheduler.cpp.

Referenced by Scheduler().

bool Scheduler::FillRecordList ( void   )  [private]

Definition at line 308 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and RunScheduler().

void Scheduler::UpdateMatches ( int  recordid  )  [private]

Definition at line 2325 of file scheduler.cpp.

Referenced by FillRecordListFromDB(), and RunScheduler().

void Scheduler::UpdateManuals ( int  recordid  )  [private]

Definition at line 2105 of file scheduler.cpp.

Referenced by BuildNewRecordsQueries().

void Scheduler::BuildWorkList ( void   )  [private]

Definition at line 667 of file scheduler.cpp.

Referenced by FillRecordList().

bool Scheduler::ClearWorkList ( void   )  [private]

Definition at line 681 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::AddNewRecords ( void   )  [private]

Definition at line 2478 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::AddNotListed ( void   )  [private]

Definition at line 2982 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::BuildNewRecordsQueries ( int  recordid,
QStringList &  from,
QStringList &  where,
MSqlBindings bindings 
) [private]

Definition at line 2207 of file scheduler.cpp.

Referenced by UpdateMatches().

void Scheduler::PruneOverlaps ( void   )  [private]

Definition at line 731 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::BuildListMaps ( void   )  [private]

Definition at line 755 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::ClearListMaps ( void   )  [private]

Definition at line 772 of file scheduler.cpp.

Referenced by FillRecordList().

bool Scheduler::IsBusyRecording ( const ProgramInfo rcinfo  )  [private]

Definition at line 1458 of file scheduler.cpp.

Referenced by RunScheduler().

bool Scheduler::IsSameProgram ( const ProgramInfo a,
const ProgramInfo b 
) const [private]

Definition at line 780 of file scheduler.cpp.

Referenced by MarkShowingsList(), and TryAnotherShowing().

bool Scheduler::FindNextConflict ( const RecList cardlist,
const ProgramInfo p,
RecConstIter iter,
bool  openEnd = false 
) const [private]

Definition at line 796 of file scheduler.cpp.

Referenced by FindConflict(), getConflicting(), MoveHigherRecords(), and TryAnotherShowing().

const ProgramInfo * Scheduler::FindConflict ( const QMap< int, RecList > &  reclists,
const ProgramInfo p,
bool  openEnd = false 
) const [private]

Definition at line 873 of file scheduler.cpp.

Referenced by SchedNewRecords(), and TryAnotherShowing().

void Scheduler::MarkOtherShowings ( ProgramInfo p  )  [private]

Definition at line 900 of file scheduler.cpp.

Referenced by MoveHigherRecords(), SchedNewRecords(), and TryAnotherShowing().

void Scheduler::MarkShowingsList ( RecList showinglist,
ProgramInfo p 
) [private]

Definition at line 921 of file scheduler.cpp.

Referenced by MarkOtherShowings().

void Scheduler::BackupRecStatus ( void   )  [private]

Definition at line 948 of file scheduler.cpp.

Referenced by MoveHigherRecords().

void Scheduler::RestoreRecStatus ( void   )  [private]

Definition at line 958 of file scheduler.cpp.

Referenced by MoveHigherRecords().

bool Scheduler::TryAnotherShowing ( ProgramInfo p,
bool  samePriority,
bool  preserveLive = false 
) [private]

Definition at line 968 of file scheduler.cpp.

Referenced by MoveHigherRecords().

void Scheduler::SchedNewRecords ( void   )  [private]

Definition at line 1088 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::MoveHigherRecords ( bool  move_this = true  )  [private]

Definition at line 1138 of file scheduler.cpp.

Referenced by SchedNewRecords(), and SchedPreserveLiveTV().

void Scheduler::SchedPreserveLiveTV ( void   )  [private]

Definition at line 3622 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::PruneRedundants ( void   )  [private]

Definition at line 1218 of file scheduler.cpp.

Referenced by FillRecordList().

void Scheduler::UpdateNextRecord ( void   )  [private]

Definition at line 1272 of file scheduler.cpp.

Referenced by RunScheduler().

bool Scheduler::ChangeRecordingEnd ( ProgramInfo oldp,
ProgramInfo newp 
) [private]

Definition at line 532 of file scheduler.cpp.

Referenced by AddNewRecords().

void Scheduler::findAllScheduledPrograms ( RecList proglist  )  [private]

Definition at line 3112 of file scheduler.cpp.

Referenced by getAllScheduled().

bool Scheduler::CheckShutdownServer ( int  prerollseconds,
QDateTime &  idleSince,
bool blockShutdown 
) [private]

Definition at line 1955 of file scheduler.cpp.

Referenced by RunScheduler().

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

Definition at line 2007 of file scheduler.cpp.

Referenced by RunScheduler().

bool Scheduler::WasStartedAutomatically (  )  [private]

Definition at line 3679 of file scheduler.cpp.

Referenced by RunScheduler().

int Scheduler::FillRecordingDir ( ProgramInfo pginfo,
RecList reclist 
) [private]

Definition at line 3285 of file scheduler.cpp.

Referenced by GetNextLiveTVDir(), and RunScheduler().

void Scheduler::FillDirectoryInfoCache ( bool  force = false  )  [private]

Definition at line 3596 of file scheduler.cpp.

Referenced by FillRecordingDir().


Member Data Documentation

QString Scheduler::recordTable [private]

QString Scheduler::priorityTable [private]

Definition at line 82 of file scheduler.h.

Referenced by AddNewRecords(), and Scheduler().

QValueList<int> Scheduler::reschedQueue [private]

Definition at line 132 of file scheduler.h.

Referenced by Reschedule(), and RunScheduler().

QMutex Scheduler::reschedLock [private]

Definition at line 133 of file scheduler.h.

Referenced by Reschedule(), and RunScheduler().

QMutex Scheduler::recordmatchLock [private]

Definition at line 134 of file scheduler.h.

Referenced by FillRecordListFromDB(), and RunScheduler().

QWaitCondition Scheduler::reschedWait [private]

Definition at line 135 of file scheduler.h.

Referenced by Reschedule(), and RunScheduler().

QMap<int, RecList> Scheduler::cardlistmap [private]

QMap<int, RecList> Scheduler::recordidlistmap [private]

Definition at line 140 of file scheduler.h.

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

QMap<QString, RecList> Scheduler::titlelistmap [private]

Definition at line 141 of file scheduler.h.

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

Definition at line 142 of file scheduler.h.

Referenced by FindNextConflict(), IsBusyRecording(), and TryAnotherShowing().

QMutex* Scheduler::reclist_lock [private]

Definition at line 147 of file scheduler.h.

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

Definition at line 148 of file scheduler.h.

Referenced by FillRecordList(), and MoveHigherRecords().

Definition at line 149 of file scheduler.h.

Referenced by DisableScheduling(), EnableScheduling(), RunScheduler(), and Scheduler().

QMap<int, bool> Scheduler::schedAfterStartMap [private]

Definition at line 150 of file scheduler.h.

Referenced by AddNewRecords(), and RunScheduler().

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

Definition at line 153 of file scheduler.h.

Referenced by FillRecordingDir(), GetNextLiveTVDir(), RunScheduler(), Scheduler(), and SetExpirer().

QMap<QString, bool> Scheduler::recPendingList [private]

Definition at line 155 of file scheduler.h.

Referenced by RunScheduler(), and SchedNewRecords().

Definition at line 157 of file scheduler.h.

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

Definition at line 158 of file scheduler.h.

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

Definition at line 160 of file scheduler.h.

Referenced by RunScheduler(), Scheduler(), SetMainServer(), and ShutdownServer().

Definition at line 162 of file scheduler.h.

Referenced by ResetIdleTime(), and RunScheduler().

Definition at line 163 of file scheduler.h.

Referenced by ResetIdleTime(), RunScheduler(), and Scheduler().

Definition at line 165 of file scheduler.h.

Referenced by RunScheduler(), Scheduler(), and ShutdownServer().

QDateTime Scheduler::fsInfoCacheFillTime [private]

Definition at line 168 of file scheduler.h.

Referenced by FillDirectoryInfoCache(), RunScheduler(), and Scheduler().

QMap<QString, FileSystemInfo> Scheduler::fsInfoCache [private]

Definition at line 169 of file scheduler.h.

Referenced by FillDirectoryInfoCache(), and FillRecordingDir().

QDateTime Scheduler::livetvTime [private]

Definition at line 172 of file scheduler.h.

Referenced by RunScheduler(), SchedNewRecords(), and SchedPreserveLiveTV().

Definition at line 173 of file scheduler.h.

Referenced by SchedPreserveLiveTV(), and TryAnotherShowing().

int Scheduler::prefinputpri [private]

Definition at line 174 of file scheduler.h.

Referenced by AddNewRecords(), and TryAnotherShowing().

QMap<QString, bool> Scheduler::hasLaterList [private]

Definition at line 175 of file scheduler.h.

Referenced by RunScheduler(), and TryAnotherShowing().

Definition at line 180 of file scheduler.h.

Referenced by ClearListMaps(), and IsSameProgram().


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

Generated on Sat Dec 18 05:16:10 2010 for MythTV by  doxygen 1.5.5