MythTV  master
httpstatus.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 HTTPSTATUS_H_
12 #define HTTPSTATUS_H_
13 
14 #include <QDomDocument>
15 #include <QMutex>
16 #include <QMap>
17 
19 #include "libmythupnp/httpserver.h"
20 
21 enum HttpStatusMethod : std::uint8_t
22 {
26 
27 };
28 
31 //
32 //
33 //
36 
37 class Scheduler;
38 class AutoExpire;
39 class EncoderLink;
40 class MainServer;
41 
43 {
44  private:
45 
47  QMap<int, EncoderLink *> *m_pEncoders;
51  QMutex m_settingLock;
52 
53  private:
54 
55  static HttpStatusMethod GetMethod( const QString &sURI );
56 
57  void GetStatusXML ( HTTPRequest *pRequest );
58  void GetStatusHTML ( HTTPRequest *pRequest );
59 
60  void FillStatusXML ( QDomDocument *pDoc);
61 
62  static void PrintStatus ( QTextStream &os, QDomDocument *pDoc );
63  static int PrintEncoderStatus( QTextStream &os, const QDomElement& encoders );
64  static int PrintScheduled ( QTextStream &os, const QDomElement& scheduled );
65  static int PrintFrontends ( QTextStream &os, const QDomElement& frontends );
66  static int PrintBackends ( QTextStream &os, const QDomElement& backends );
67  static int PrintJobQueue ( QTextStream &os, const QDomElement& jobs );
68  static int PrintMachineInfo ( QTextStream &os, const QDomElement& info );
69  static int PrintMiscellaneousInfo ( QTextStream &os, const QDomElement& info );
70 
71  static void FillProgramInfo ( QDomDocument *pDoc,
72  QDomNode &node,
73  ProgramInfo *pInfo,
74  bool bIncChannel = true,
75  bool bDetails = true );
76 
77  static void FillChannelInfo ( QDomElement &channel,
78  ProgramInfo *pInfo,
79  bool bDetails = true );
80 
81 
82  public:
83  HttpStatus( QMap<int, EncoderLink *> *tvList, Scheduler *sched,
84  bool bIsMaster );
85  ~HttpStatus() override = default;
86 
89 
90  QStringList GetBasePaths() override; // HttpServerExtension
91 
92  bool ProcessRequest( HTTPRequest *pRequest ) override; // HttpServerExtension
93 };
94 
95 #endif
HttpStatus::PrintStatus
static void PrintStatus(QTextStream &os, QDomDocument *pDoc)
Definition: httpstatus.cpp:624
HttpStatus::GetMethod
static HttpStatusMethod GetMethod(const QString &sURI)
Definition: httpstatus.cpp:68
Scheduler
Definition: scheduler.h:45
HTTPRequest
Definition: httprequest.h:109
HttpStatus::m_pEncoders
QMap< int, EncoderLink * > * m_pEncoders
Definition: httpstatus.h:47
HttpStatus::GetStatusHTML
void GetStatusHTML(HTTPRequest *pRequest)
Definition: httpstatus.cpp:159
HttpStatus::PrintScheduled
static int PrintScheduled(QTextStream &os, const QDomElement &scheduled)
Definition: httpstatus.cpp:855
HttpStatus
Definition: httpstatus.h:42
HttpStatus::m_pSched
Scheduler * m_pSched
Definition: httpstatus.h:46
HttpStatus::m_bIsMaster
bool m_bIsMaster
Definition: httpstatus.h:49
HttpStatus::~HttpStatus
~HttpStatus() override=default
sched
Scheduler * sched
MainServer
Definition: mainserver.h:115
AutoExpire
Used to expire recordings to make space for new recordings.
Definition: autoexpire.h:60
HttpStatus::FillProgramInfo
static void FillProgramInfo(QDomDocument *pDoc, QDomNode &node, ProgramInfo *pInfo, bool bIncChannel=true, bool bDetails=true)
Definition: httpstatus.cpp:1510
HttpStatusMethod
HttpStatusMethod
Definition: httpstatus.h:21
HttpStatus::SetMainServer
void SetMainServer(MainServer *mainServer)
Definition: httpstatus.h:87
HttpStatus::ProcessRequest
bool ProcessRequest(HTTPRequest *pRequest) override
Definition: httpstatus.cpp:91
HttpStatus::GetBasePaths
QStringList GetBasePaths() override
Definition: httpstatus.cpp:82
HSM_GetStatusHTML
@ HSM_GetStatusHTML
Definition: httpstatus.h:24
HttpStatus::PrintBackends
static int PrintBackends(QTextStream &os, const QDomElement &backends)
Definition: httpstatus.cpp:1026
programinfo.h
HttpStatus::HttpStatus
HttpStatus(QMap< int, EncoderLink * > *tvList, Scheduler *sched, bool bIsMaster)
Definition: httpstatus.cpp:54
HttpStatus::m_pMainServer
MainServer * m_pMainServer
Definition: httpstatus.h:48
HttpStatus::PrintMachineInfo
static int PrintMachineInfo(QTextStream &os, const QDomElement &info)
Definition: httpstatus.cpp:1210
HttpStatus::FillStatusXML
void FillStatusXML(QDomDocument *pDoc)
Definition: httpstatus.cpp:179
HttpStatus::PrintJobQueue
static int PrintJobQueue(QTextStream &os, const QDomElement &jobs)
Definition: httpstatus.cpp:1065
mainServer
static MainServer * mainServer
Definition: mythbackend_main_helpers.cpp:83
HSM_Unknown
@ HSM_Unknown
Definition: httpstatus.h:23
ProgramInfo
Holds information on recordings and videos.
Definition: programinfo.h:67
HttpStatus::PrintMiscellaneousInfo
static int PrintMiscellaneousInfo(QTextStream &os, const QDomElement &info)
Definition: httpstatus.cpp:1456
HSM_GetStatusXML
@ HSM_GetStatusXML
Definition: httpstatus.h:25
HttpStatus::PrintEncoderStatus
static int PrintEncoderStatus(QTextStream &os, const QDomElement &encoders)
Definition: httpstatus.cpp:711
HttpStatus::m_nPreRollSeconds
int m_nPreRollSeconds
Definition: httpstatus.h:50
httpserver.h
azlyrics.info
dictionary info
Definition: azlyrics.py:7
HttpStatus::PrintFrontends
static int PrintFrontends(QTextStream &os, const QDomElement &frontends)
Definition: httpstatus.cpp:988
HttpServerExtension
Definition: httpserver.h:71
HttpStatus::FillChannelInfo
static void FillChannelInfo(QDomElement &channel, ProgramInfo *pInfo, bool bDetails=true)
Definition: httpstatus.cpp:1609
HttpStatus::m_settingLock
QMutex m_settingLock
Definition: httpstatus.h:51
HttpStatus::GetStatusXML
void GetStatusXML(HTTPRequest *pRequest)
Definition: httpstatus.cpp:131