MythTV  0.27pre
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Groups Pages
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
JobQueue Class Reference

#include <jobqueue.h>

Collaboration diagram for JobQueue:
Collaboration graph
[legend]

Classes

struct  jobthreadstruct

Public Member Functions

 JobQueue (bool master)
 ~JobQueue (void)
void customEvent (QEvent *e)
int GetRunningJobID (uint chanid, const QDateTime &recstartts)

Static Public Member Functions

static bool QueueRecordingJobs (const RecordingInfo &, int jobTypes=JOB_NONE)
static bool QueueJob (int jobType, uint chanid, const QDateTime &recstartts, QString args="", QString comment="", QString host="", int flags=0, int status=JOB_QUEUED, QDateTime schedruntime=QDateTime())
static bool QueueJobs (int jobTypes, uint chanid, const QDateTime &recstartts, QString args="", QString comment="", QString host="")
static int GetJobID (int jobType, uint chanid, const QDateTime &recstartts)
static bool GetJobInfoFromID (int jobID, int &jobType, uint &chanid, QDateTime &recstartts)
static bool GetJobInfoFromID (int jobID, int &jobType, uint &chanid, QString &recstartts)
static bool ChangeJobCmds (int jobID, int newCmds)
static bool ChangeJobCmds (int jobType, uint chanid, const QDateTime &recstartts, int newCmds)
static bool ChangeJobFlags (int jobID, int newFlags)
static bool ChangeJobStatus (int jobID, int newStatus, QString comment="")
static bool ChangeJobHost (int jobID, QString newHostname)
static bool ChangeJobComment (int jobID, QString comment="")
static bool ChangeJobArgs (int jobID, QString args="")
static bool IsJobQueuedOrRunning (int jobType, uint chanid, const QDateTime &recstartts)
static bool IsJobRunning (int jobType, uint chanid, const QDateTime &recstartts)
static bool IsJobRunning (int jobType, const ProgramInfo &pginfo)
static bool IsJobQueued (int jobType, uint chanid, const QDateTime &recstartts)
static bool PauseJob (int jobID)
static bool ResumeJob (int jobID)
static bool RestartJob (int jobID)
static bool StopJob (int jobID)
static bool DeleteJob (int jobID)
static enum JobCmds GetJobCmd (int jobID)
static enum JobFlags GetJobFlags (int jobID)
static enum JobStatus GetJobStatus (int jobID)
static enum JobStatus GetJobStatus (int jobType, uint chanid, const QDateTime &recstartts)
static QString GetJobArgs (int jobID)
static int UserJobTypeToIndex (int JobType)
static bool DeleteAllJobs (uint chanid, const QDateTime &recstartts)
static void ClearJobMask (int &mask)
static bool JobIsInMask (int job, int mask)
static bool JobIsNotInMask (int job, int mask)
static void AddJobsToMask (int jobs, int &mask)
static void RemoveJobsFromMask (int jobs, int &mask)
static QString JobText (int jobType)
static QString StatusText (int status)
static bool HasRunningOrPendingJobs (int startingWithinMins=0)
static int GetJobsInQueue (QMap< int, JobQueueEntry > &jobs, int findJobs=JOB_LIST_NOT_DONE)
static void RecoverQueue (bool justOld=false)
static void RecoverOldJobsInQueue ()
static void CleanupOldJobsInQueue ()

Private Types

typedef struct
JobQueue::jobthreadstruct 
JobThreadStruct

Private Member Functions

void run (void)
void ProcessQueue (void)
void ProcessJob (JobQueueEntry job)
bool AllowedToRun (JobQueueEntry job)
void StartChildJob (void *(*start_routine)(void *), int jobID)
QString GetJobDescription (int jobType)
QString GetJobCommand (int id, int jobType, ProgramInfo *tmpInfo)
void RemoveRunningJob (int id)
void DoTranscodeThread (int jobID)
void DoMetadataLookupThread (int jobID)
void DoFlagCommercialsThread (int jobID)
void DoUserJobThread (int jobID)

Static Private Member Functions

static bool InJobRunWindow (int orStartingWithinMins=0)
static QString PrettyPrint (off_t bytes)
static voidTranscodeThread (void *param)
static voidMetadataLookupThread (void *param)
static voidFlagCommercialsThread (void *param)
static voidUserJobThread (void *param)

Private Attributes

QString m_hostname
int jobsRunning
int jobQueueCPU
ProgramInfom_pginfo
QMutex controlFlagsLock
QMap< QString, int * > jobControlFlags
QMutex * runningJobsLock
QMap< int, RunningJobInforunningJobs
bool isMaster
MThreadqueueThread
QWaitCondition queueThreadCond
QMutex queueThreadCondLock
bool processQueue

Friends

class QueueProcessorThread

Detailed Description

Definition at line 116 of file jobqueue.h.

Member Typedef Documentation

Constructor & Destructor Documentation

JobQueue::JobQueue ( bool  master)

Definition at line 46 of file jobqueue.cpp.

JobQueue::~JobQueue ( void  )

Definition at line 71 of file jobqueue.cpp.

Member Function Documentation

void JobQueue::customEvent ( QEvent *  e)

Definition at line 87 of file jobqueue.cpp.

bool JobQueue::QueueRecordingJobs ( const RecordingInfo recinfo,
int  jobTypes = JOB_NONE 
)
static

Definition at line 503 of file jobqueue.cpp.

Referenced by TVRec::FinishedRecording().

bool JobQueue::QueueJob ( int  jobType,
uint  chanid,
const QDateTime &  recstartts,
QString  args = "",
QString  comment = "",
QString  host = "",
int  flags = 0,
int  status = JOB_QUEUED,
QDateTime  schedruntime = QDateTime() 
)
static

Definition at line 528 of file jobqueue.cpp.

Referenced by TV::DoQueueTranscode(), init_jobs(), QueueJob(), QueueJobs(), and QueueTranscodeJob().

bool JobQueue::QueueJobs ( int  jobTypes,
uint  chanid,
const QDateTime &  recstartts,
QString  args = "",
QString  comment = "",
QString  host = "" 
)
static

Definition at line 615 of file jobqueue.cpp.

Referenced by QueueRecordingJobs().

int JobQueue::GetJobID ( int  jobType,
uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 661 of file jobqueue.cpp.

Referenced by customEvent().

bool JobQueue::GetJobInfoFromID ( int  jobID,
int jobType,
uint chanid,
QDateTime &  recstartts 
)
static

Definition at line 686 of file jobqueue.cpp.

Referenced by GetJobInfoFromID(), and main().

bool JobQueue::GetJobInfoFromID ( int  jobID,
int jobType,
uint chanid,
QString &  recstartts 
)
static

Definition at line 715 of file jobqueue.cpp.

bool JobQueue::ChangeJobCmds ( int  jobID,
int  newCmds 
)
static
bool JobQueue::ChangeJobCmds ( int  jobType,
uint  chanid,
const QDateTime &  recstartts,
int  newCmds 
)
static

Definition at line 927 of file jobqueue.cpp.

bool JobQueue::ChangeJobFlags ( int  jobID,
int  newFlags 
)
static

Definition at line 949 of file jobqueue.cpp.

bool JobQueue::ChangeJobStatus ( int  jobID,
int  newStatus,
QString  comment = "" 
)
static
bool JobQueue::ChangeJobHost ( int  jobID,
QString  newHostname 
)
static

Definition at line 1386 of file jobqueue.cpp.

Referenced by ProcessQueue(), and RecoverQueue().

bool JobQueue::ChangeJobComment ( int  jobID,
QString  comment = "" 
)
static
bool JobQueue::ChangeJobArgs ( int  jobID,
QString  args = "" 
)
static

Definition at line 1022 of file jobqueue.cpp.

Referenced by main().

bool JobQueue::IsJobQueuedOrRunning ( int  jobType,
uint  chanid,
const QDateTime &  recstartts 
)
static
int JobQueue::GetRunningJobID ( uint  chanid,
const QDateTime &  recstartts 
)

Definition at line 1044 of file jobqueue.cpp.

Referenced by ProcessQueue().

bool JobQueue::IsJobRunning ( int  jobType,
uint  chanid,
const QDateTime &  recstartts 
)
static
bool JobQueue::IsJobRunning ( int  jobType,
const ProgramInfo pginfo 
)
static

Definition at line 1077 of file jobqueue.cpp.

bool JobQueue::IsJobQueued ( int  jobType,
uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 1094 of file jobqueue.cpp.

Referenced by extract_commflag_state().

bool JobQueue::PauseJob ( int  jobID)
static

Definition at line 729 of file jobqueue.cpp.

Referenced by StatusBox::customEvent().

bool JobQueue::ResumeJob ( int  jobID)
static

Definition at line 738 of file jobqueue.cpp.

Referenced by StatusBox::customEvent().

bool JobQueue::RestartJob ( int  jobID)
static

Definition at line 747 of file jobqueue.cpp.

bool JobQueue::StopJob ( int  jobID)
static

Definition at line 756 of file jobqueue.cpp.

Referenced by StatusBox::customEvent().

bool JobQueue::DeleteJob ( int  jobID)
static

Definition at line 886 of file jobqueue.cpp.

Referenced by StatusBox::customEvent(), and QueueJob().

enum JobCmds JobQueue::GetJobCmd ( int  jobID)
static
enum JobFlags JobQueue::GetJobFlags ( int  jobID)
static

Definition at line 1496 of file jobqueue.cpp.

Referenced by DoTranscodeThread(), and main().

enum JobStatus JobQueue::GetJobStatus ( int  jobID)
static
enum JobStatus JobQueue::GetJobStatus ( int  jobType,
uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 1537 of file jobqueue.cpp.

QString JobQueue::GetJobArgs ( int  jobID)
static

Definition at line 1475 of file jobqueue.cpp.

Referenced by CompleteJob().

int JobQueue::UserJobTypeToIndex ( int  JobType)
static
bool JobQueue::DeleteAllJobs ( uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 765 of file jobqueue.cpp.

Referenced by MainServer::DoDeleteThread().

static void JobQueue::ClearJobMask ( int mask)
inlinestatic

Definition at line 180 of file jobqueue.h.

static bool JobQueue::JobIsInMask ( int  job,
int  mask 
)
inlinestatic

Definition at line 181 of file jobqueue.h.

Referenced by init_jobs().

static bool JobQueue::JobIsNotInMask ( int  job,
int  mask 
)
inlinestatic

Definition at line 182 of file jobqueue.h.

Referenced by init_jobs().

static void JobQueue::AddJobsToMask ( int  jobs,
int mask 
)
inlinestatic

Definition at line 184 of file jobqueue.h.

Referenced by init_jobs().

static void JobQueue::RemoveJobsFromMask ( int  jobs,
int mask 
)
inlinestatic

Definition at line 185 of file jobqueue.h.

Referenced by TVRec::FinishedRecording(), and init_jobs().

QString JobQueue::JobText ( int  jobType)
static
QString JobQueue::StatusText ( int  status)
static
bool JobQueue::HasRunningOrPendingJobs ( int  startingWithinMins = 0)
static

Definition at line 1214 of file jobqueue.cpp.

Referenced by getStatus().

int JobQueue::GetJobsInQueue ( QMap< int, JobQueueEntry > &  jobs,
int  findJobs = JOB_LIST_NOT_DONE 
)
static
void JobQueue::RecoverQueue ( bool  justOld = false)
static

Definition at line 1561 of file jobqueue.cpp.

Referenced by run().

static void JobQueue::RecoverOldJobsInQueue ( )
inlinestatic

Definition at line 196 of file jobqueue.h.

Referenced by HouseKeeper::RunHouseKeeping().

void JobQueue::CleanupOldJobsInQueue ( )
static

Definition at line 1626 of file jobqueue.cpp.

Referenced by HouseKeeper::RunHouseKeeping().

void JobQueue::run ( void  )
private

Definition at line 151 of file jobqueue.cpp.

void JobQueue::ProcessQueue ( void  )
private

Definition at line 166 of file jobqueue.cpp.

Referenced by run().

void JobQueue::ProcessJob ( JobQueueEntry  job)
private

Definition at line 1651 of file jobqueue.cpp.

Referenced by ProcessQueue().

bool JobQueue::AllowedToRun ( JobQueueEntry  job)
private

Definition at line 1421 of file jobqueue.cpp.

Referenced by ProcessQueue().

bool JobQueue::InJobRunWindow ( int  orStartingWithinMins = 0)
staticprivate

Definition at line 1135 of file jobqueue.cpp.

Referenced by HasRunningOrPendingJobs(), and ProcessQueue().

void JobQueue::StartChildJob ( void *(*)(void *)  start_routine,
int  jobID 
)
private

Definition at line 1740 of file jobqueue.cpp.

Referenced by ProcessJob().

QString JobQueue::GetJobDescription ( int  jobType)
private

Definition at line 1754 of file jobqueue.cpp.

Referenced by ProcessJob().

QString JobQueue::GetJobCommand ( int  id,
int  jobType,
ProgramInfo tmpInfo 
)
private

Definition at line 1769 of file jobqueue.cpp.

Referenced by ProcessJob().

void JobQueue::RemoveRunningJob ( int  id)
private
QString JobQueue::PrettyPrint ( off_t  bytes)
staticprivate

Definition at line 1838 of file jobqueue.cpp.

Referenced by DoTranscodeThread().

void * JobQueue::TranscodeThread ( void param)
staticprivate

Definition at line 1871 of file jobqueue.cpp.

Referenced by ProcessJob().

void JobQueue::DoTranscodeThread ( int  jobID)
private

Definition at line 1885 of file jobqueue.cpp.

Referenced by TranscodeThread().

void * JobQueue::MetadataLookupThread ( void param)
staticprivate

Definition at line 2101 of file jobqueue.cpp.

Referenced by ProcessJob().

void JobQueue::DoMetadataLookupThread ( int  jobID)
private

Definition at line 2115 of file jobqueue.cpp.

Referenced by MetadataLookupThread().

void * JobQueue::FlagCommercialsThread ( void param)
staticprivate

Definition at line 2226 of file jobqueue.cpp.

Referenced by ProcessJob().

void JobQueue::DoFlagCommercialsThread ( int  jobID)
private

Definition at line 2240 of file jobqueue.cpp.

Referenced by FlagCommercialsThread().

void * JobQueue::UserJobThread ( void param)
staticprivate

Definition at line 2373 of file jobqueue.cpp.

Referenced by ProcessJob().

void JobQueue::DoUserJobThread ( int  jobID)
private

Definition at line 2387 of file jobqueue.cpp.

Referenced by UserJobThread().

Friends And Related Function Documentation

friend class QueueProcessorThread
friend

Definition at line 120 of file jobqueue.h.

Member Data Documentation

QString JobQueue::m_hostname
private

Definition at line 236 of file jobqueue.h.

Referenced by AllowedToRun(), and ProcessQueue().

int JobQueue::jobsRunning
private

Definition at line 238 of file jobqueue.h.

Referenced by ProcessQueue().

int JobQueue::jobQueueCPU
private

Definition at line 239 of file jobqueue.h.

Referenced by DoTranscodeThread(), DoUserJobThread(), and JobQueue().

ProgramInfo* JobQueue::m_pginfo
private

Definition at line 241 of file jobqueue.h.

QMutex JobQueue::controlFlagsLock
private

Definition at line 243 of file jobqueue.h.

QMap<QString, int *> JobQueue::jobControlFlags
private

Definition at line 244 of file jobqueue.h.

QMutex* JobQueue::runningJobsLock
private
QMap<int, RunningJobInfo> JobQueue::runningJobs
private
bool JobQueue::isMaster
private

Definition at line 249 of file jobqueue.h.

MThread* JobQueue::queueThread
private

Definition at line 251 of file jobqueue.h.

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

QWaitCondition JobQueue::queueThreadCond
private

Definition at line 252 of file jobqueue.h.

Referenced by ProcessQueue(), run(), and ~JobQueue().

QMutex JobQueue::queueThreadCondLock
private

Definition at line 253 of file jobqueue.h.

Referenced by JobQueue(), ProcessQueue(), run(), and ~JobQueue().

bool JobQueue::processQueue
private

Definition at line 254 of file jobqueue.h.

Referenced by JobQueue(), ProcessQueue(), and ~JobQueue().


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