00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #ifndef HTTPSTATUS_H_
00012 #define HTTPSTATUS_H_
00013
00014 #include <qdom.h>
00015 #include <qdatetime.h>
00016
00017 #include "httpserver.h"
00018 #include "mainserver.h"
00019 #include "autoexpire.h"
00020 #include "mythcontext.h"
00021 #include "jobqueue.h"
00022 #include "programinfo.h"
00023
00024
00025 typedef enum
00026 {
00027 HSM_Unknown = 0,
00028 HSM_GetStatusHTML = 1,
00029 HSM_GetStatusXML = 2
00030
00031 } HttpStatusMethod;
00032
00035
00036
00037
00040
00041 class HttpStatus : public HttpServerExtension
00042 {
00043 private:
00044
00045 Scheduler *m_pSched;
00046 QMap<int, EncoderLink *> *m_pEncoders;
00047 AutoExpire *m_pExpirer;
00048 bool m_bIsMaster;
00049 int m_nPreRollSeconds;
00050 QMutex m_settingLock;
00051
00052 private:
00053
00054 HttpStatusMethod GetMethod( const QString &sURI );
00055
00056 void GetStatusXML ( HTTPRequest *pRequest );
00057 void GetStatusHTML ( HTTPRequest *pRequest );
00058
00059 void FillStatusXML ( QDomDocument *pDoc);
00060
00061 void PrintStatus ( QTextStream &os, QDomDocument *pDoc );
00062 int PrintEncoderStatus( QTextStream &os, QDomElement encoders );
00063 int PrintScheduled ( QTextStream &os, QDomElement scheduled );
00064 int PrintJobQueue ( QTextStream &os, QDomElement jobs );
00065 int PrintMachineInfo ( QTextStream &os, QDomElement info );
00066 int PrintMiscellaneousInfo ( QTextStream &os, QDomElement info );
00067
00068 public:
00069 HttpStatus( QMap<int, EncoderLink *> *tvList, Scheduler *sched, AutoExpire *expirer, bool bIsMaster );
00070 virtual ~HttpStatus();
00071
00072 bool ProcessRequest( HttpWorkerThread *pThread, HTTPRequest *pRequest );
00073 };
00074
00075 #endif