2004-12-30 23:43:55 +01:00
|
|
|
/*
|
2005-02-11 17:44:14 +01:00
|
|
|
* $Id: connectionHTTP.h,v 1.3 2005/02/11 16:44:15 lordjaxom Exp $
|
2004-12-30 23:43:55 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef VDR_STREAMDEV_SERVERS_CONNECTIONHTTP_H
|
|
|
|
#define VDR_STREAMDEV_SERVERS_CONNECTIONHTTP_H
|
|
|
|
|
|
|
|
#include "connection.h"
|
2005-02-11 17:44:14 +01:00
|
|
|
#include "server/livestreamer.h"
|
2004-12-30 23:43:55 +01:00
|
|
|
|
|
|
|
#include <tools/select.h>
|
|
|
|
|
|
|
|
class cChannel;
|
|
|
|
class cStreamdevLiveStreamer;
|
|
|
|
|
|
|
|
class cConnectionHTTP: public cServerConnection {
|
|
|
|
private:
|
|
|
|
enum eHTTPStatus {
|
|
|
|
hsRequest,
|
|
|
|
hsHeaders,
|
2005-02-11 17:44:14 +01:00
|
|
|
hsBody,
|
|
|
|
hsFinished,
|
2004-12-30 23:43:55 +01:00
|
|
|
};
|
|
|
|
|
2005-02-11 17:44:14 +01:00
|
|
|
enum eHTTPJob {
|
|
|
|
hjTransfer,
|
|
|
|
hjListing,
|
|
|
|
};
|
|
|
|
|
|
|
|
std::string m_Request;
|
|
|
|
//std::map<std::string,std::string> m_Headers; TODO: later?
|
|
|
|
eHTTPStatus m_Status;
|
|
|
|
eHTTPJob m_Job;
|
|
|
|
// job: transfer
|
|
|
|
cStreamdevLiveStreamer *m_LiveStreamer;
|
|
|
|
const cChannel *m_Channel;
|
|
|
|
int m_Apid;
|
|
|
|
eStreamType m_StreamType;
|
|
|
|
// job: listing
|
|
|
|
const cChannel *m_ListChannel;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
bool ProcessRequest(void);
|
2004-12-30 23:43:55 +01:00
|
|
|
|
|
|
|
public:
|
|
|
|
cConnectionHTTP(void);
|
|
|
|
virtual ~cConnectionHTTP();
|
|
|
|
|
2005-02-11 17:44:14 +01:00
|
|
|
virtual void Attach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Attach(); }
|
|
|
|
virtual void Detach(void) { if (m_LiveStreamer != NULL) m_LiveStreamer->Detach(); }
|
2004-12-30 23:43:55 +01:00
|
|
|
|
|
|
|
virtual bool Command(char *Cmd);
|
2005-02-11 17:44:14 +01:00
|
|
|
bool CmdGET(const std::string &Opts);
|
2004-12-30 23:43:55 +01:00
|
|
|
|
|
|
|
virtual void Flushed(void);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // VDR_STREAMDEV_SERVERS_CONNECTIONVTP_H
|