MythTV master
jobutils.cpp
Go to the documentation of this file.
1// C++ includes
2#include <iostream>
3
4// libmyth* includes
8
9// Local includes
10#include "jobutils.h"
11
13{
14 ProgramInfo pginfo;
15 if (!GetProgramInfo(cmdline, pginfo))
17
18 bool rebuildSeektable = false;
19 int jobType = JOB_NONE;
20
21 if (cmdline.toString("queuejob") == "transcode")
22 jobType = JOB_TRANSCODE;
23 else if (cmdline.toString("queuejob") == "commflag")
24 jobType = JOB_COMMFLAG;
25 else if (cmdline.toString("queuejob") == "rebuild")
26 {
27 jobType = JOB_COMMFLAG;
28 rebuildSeektable = true;
29 }
30 else if (cmdline.toString("queuejob") == "metadata")
31 {
32 jobType = JOB_METADATA;
33 }
34 else if (cmdline.toString("queuejob") == "userjob1")
35 {
36 jobType = JOB_USERJOB1;
37 }
38 else if (cmdline.toString("queuejob") == "userjob2")
39 {
40 jobType = JOB_USERJOB2;
41 }
42 else if (cmdline.toString("queuejob") == "userjob3")
43 {
44 jobType = JOB_USERJOB3;
45 }
46 else if (cmdline.toString("queuejob") == "userjob4")
47 {
48 jobType = JOB_USERJOB4;
49 }
50 else if (cmdline.toInt("queuejob") > 0)
51 {
52 jobType = cmdline.toInt("queuejob");
53 }
54
55 if (jobType == JOB_NONE)
56 {
57 LOG(VB_GENERAL, LOG_ERR,
58 "Error, invalid job type given with queuejob option");
60 }
61
62 bool result = JobQueue::QueueJob(jobType,
63 pginfo.GetChanID(), pginfo.GetRecordingStartTime(), "", "", "",
64 static_cast<int>(rebuildSeektable), JOB_QUEUED, QDateTime());
65
66 if (result)
67 {
68 QString tmp = QString("%1 Job Queued for chanid %2 @ %3")
69 .arg(cmdline.toString("queuejob"))
70 .arg(pginfo.GetChanID())
71 .arg(pginfo.GetRecordingStartTime().toString());
72 std::cerr << tmp.toLocal8Bit().constData() << std::endl;
73 return GENERIC_EXIT_OK;
74 }
75
76 QString tmp = QString("Error queueing job for chanid %1 @ %2")
77 .arg(pginfo.GetChanID())
78 .arg(pginfo.GetRecordingStartTime().toString());
79 std::cerr << tmp.toLocal8Bit().constData() << std::endl;
81}
82
84{
85 utilMap["queuejob"] = &QueueJob;
86}
87
88/* vim: set expandtab tabstop=4 shiftwidth=4: */
static bool QueueJob(int jobType, uint chanid, const QDateTime &recstartts, const QString &args="", const QString &comment="", QString host="", int flags=0, int status=JOB_QUEUED, QDateTime schedruntime=QDateTime())
Definition: jobqueue.cpp:508
int toInt(const QString &key) const
Returns stored QVariant as an integer, falling to default if not provided.
QString toString(const QString &key) const
Returns stored QVariant as a QString, falling to default if not provided.
Holds information on recordings and videos.
Definition: programinfo.h:68
uint GetChanID(void) const
This is the unique key used in the database to locate tuning information.
Definition: programinfo.h:373
QDateTime GetRecordingStartTime(void) const
Approximate time the recording started.
Definition: programinfo.h:405
@ GENERIC_EXIT_OK
Exited with no error.
Definition: exitcodes.h:13
@ GENERIC_EXIT_NO_RECORDING_DATA
No program/recording data.
Definition: exitcodes.h:32
@ GENERIC_EXIT_INVALID_CMDLINE
Command line parse error.
Definition: exitcodes.h:18
@ GENERIC_EXIT_DB_ERROR
Database error.
Definition: exitcodes.h:20
static guint32 * tmp
Definition: goom_core.cpp:26
@ JOB_USERJOB3
Definition: jobqueue.h:86
@ JOB_METADATA
Definition: jobqueue.h:80
@ JOB_USERJOB1
Definition: jobqueue.h:84
@ JOB_USERJOB2
Definition: jobqueue.h:85
@ JOB_NONE
Definition: jobqueue.h:75
@ JOB_COMMFLAG
Definition: jobqueue.h:79
@ JOB_USERJOB4
Definition: jobqueue.h:87
@ JOB_TRANSCODE
Definition: jobqueue.h:78
void registerJobUtils(UtilMap &utilMap)
Definition: jobutils.cpp:83
static int QueueJob(const MythUtilCommandLineParser &cmdline)
Definition: jobutils.cpp:12
MythCommFlagCommandLineParser cmdline
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
bool GetProgramInfo(const MythUtilCommandLineParser &cmdline, ProgramInfo &pginfo)
Definition: mythutil.cpp:32
QMap< QString, UtilFunc > UtilMap
Definition: mythutil.h:15