MythTV  master
v2status.h
Go to the documentation of this file.
1 // Program Name: httpstatus.h
3 //
4 // Purpose - Html & XML status HttpServerExtension
5 //
6 // Created By : David Blain Created On : Oct. 24, 2005
7 // Modified By : Modified On:
8 //
10 
11 #ifndef V2STATUS_H_
12 #define V2STATUS_H_
13 
14 // Qt
15 #include <QDomDocument>
16 #include <QMutex>
17 #include <QMap>
18 
19 // MythTV
24 
25 // MythBackend
26 #include "preformat.h"
27 #include "v2backendStatus.h"
28 
29 class Scheduler;
30 class AutoExpire;
31 class EncoderLink;
32 class MainServer;
33 
34 #define STATUS_SERVICE QString("/Status/")
35 #define STATUS_HANDLE QString("Status")
36 
37 class V2Status : public MythHTTPService
38 {
39 
40  Q_OBJECT
41  Q_CLASSINFO("Version", "1.0")
42  Q_CLASSINFO("Status", "methods=GET,POST,HEAD")
43  Q_CLASSINFO("xml", "methods=GET,POST,HEAD")
44  Q_CLASSINFO("GetBackendStatus", "methods=GET,POST,HEAD")
45 
46  public:
47  V2Status();
48  ~V2Status() override = default;
49  static void RegisterCustomTypes();
50 
51  public slots:
52  Preformat* Status ( ); // HTML
53  Preformat* GetStatusHTML ( ); // HTML
54  Preformat* GetStatus (); // XML
55  Preformat* xml (); // XML
56  V2BackendStatus* GetBackendStatus(); // Standardized version of GetStatus
57 
58  private:
59 
60  Scheduler *m_pSched {nullptr};
61  QMap<int, EncoderLink *> *m_pEncoders;
65  QMutex m_settingLock;
66 
67  private:
68 
69  void FillStatusXML ( QDomDocument *pDoc);
70 
71  static void PrintStatus ( QTextStream &os, QDomDocument *pDoc );
72  static int PrintEncoderStatus( QTextStream &os, const QDomElement& encoders );
73  static int PrintScheduled ( QTextStream &os, const QDomElement& scheduled );
74  static int PrintFrontends ( QTextStream &os, const QDomElement& frontends );
75  static int PrintBackends ( QTextStream &os, const QDomElement& backends );
76  static int PrintJobQueue ( QTextStream &os, const QDomElement& jobs );
77  static int PrintMachineInfo ( QTextStream &os, const QDomElement& info );
78  static int PrintMiscellaneousInfo ( QTextStream &os, const QDomElement& info );
79 
80  static void FillProgramInfo ( QDomDocument *pDoc,
81  QDomNode &node,
82  ProgramInfo *pInfo,
83  bool bIncChannel = true,
84  bool bDetails = true );
85 
86  static void FillChannelInfo ( QDomElement &channel,
87  ProgramInfo *pInfo,
88  bool bDetails = true );
89  void FillDriveSpace(V2MachineInfo* pMachineInfo);
90 };
91 
92 #endif
Scheduler
Definition: scheduler.h:45
V2Status::PrintMiscellaneousInfo
static int PrintMiscellaneousInfo(QTextStream &os, const QDomElement &info)
Definition: v2status.cpp:1642
V2Status::m_pSched
Scheduler * m_pSched
Definition: v2status.h:60
V2Status::PrintJobQueue
static int PrintJobQueue(QTextStream &os, const QDomElement &jobs)
Definition: v2status.cpp:1255
V2Status::FillProgramInfo
static void FillProgramInfo(QDomDocument *pDoc, QDomNode &node, ProgramInfo *pInfo, bool bIncChannel=true, bool bDetails=true)
Definition: v2status.cpp:1694
V2Status::~V2Status
~V2Status() override=default
V2Status::PrintBackends
static int PrintBackends(QTextStream &os, const QDomElement &backends)
Definition: v2status.cpp:1216
MainServer
Definition: mainserver.h:115
AutoExpire
Used to expire recordings to make space for new recordings.
Definition: autoexpire.h:60
V2Status::FillDriveSpace
void FillDriveSpace(V2MachineInfo *pMachineInfo)
Definition: v2status.cpp:303
V2Status::Status
Preformat * Status()
Definition: v2status.cpp:88
V2Status::m_settingLock
QMutex m_settingLock
Definition: v2status.h:65
V2Status::GetBackendStatus
V2BackendStatus * GetBackendStatus()
Definition: v2status.cpp:144
mythhttpdata.h
V2Status::m_bIsMaster
bool m_bIsMaster
Definition: v2status.h:63
V2MachineInfo
Definition: v2backendStatus.h:68
V2BackendStatus
Definition: v2backendStatus.h:139
programinfo.h
V2Status
Definition: v2status.h:37
V2Status::PrintStatus
static void PrintStatus(QTextStream &os, QDomDocument *pDoc)
Definition: v2status.cpp:814
V2Status::GetStatusHTML
Preformat * GetStatusHTML()
Definition: v2status.cpp:116
V2Status::m_nPreRollSeconds
int m_nPreRollSeconds
Definition: v2status.h:64
V2Status::GetStatus
Preformat * GetStatus()
Definition: v2status.cpp:100
mythmimedatabase.h
V2Status::RegisterCustomTypes
static void RegisterCustomTypes()
MythHTTPService
Definition: mythhttpservice.h:19
V2Status::PrintEncoderStatus
static int PrintEncoderStatus(QTextStream &os, const QDomElement &encoders)
Definition: v2status.cpp:901
V2Status::xml
Preformat * xml()
Definition: v2status.cpp:94
V2Status::m_pEncoders
QMap< int, EncoderLink * > * m_pEncoders
Definition: v2status.h:61
mythhttpservice.h
ProgramInfo
Holds information on recordings and videos.
Definition: programinfo.h:67
v2backendStatus.h
V2Status::FillChannelInfo
static void FillChannelInfo(QDomElement &channel, ProgramInfo *pInfo, bool bDetails=true)
Definition: v2status.cpp:1793
V2Status::PrintScheduled
static int PrintScheduled(QTextStream &os, const QDomElement &scheduled)
Definition: v2status.cpp:1045
preformat.h
Preformat
Definition: preformat.h:19
V2Status::PrintFrontends
static int PrintFrontends(QTextStream &os, const QDomElement &frontends)
Definition: v2status.cpp:1178
V2Status::m_pMainServer
MainServer * m_pMainServer
Definition: v2status.h:62
V2Status::FillStatusXML
void FillStatusXML(QDomDocument *pDoc)
Definition: v2status.cpp:371
V2Status::V2Status
V2Status()
Definition: v2status.cpp:77
V2Status::PrintMachineInfo
static int PrintMachineInfo(QTextStream &os, const QDomElement &info)
Definition: v2status.cpp:1398