+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS HTTP Daemon
- * FILE: include/httpd.h
- */
-#ifndef __HTTPD_H
-#define __HTTPD_H
-
-#include <socket.h>
-#include <thread.h>
-#include <http.h>
-
-#define HTTPD_START WM_USER + 1
-#define HTTPD_STOP WM_USER + 2
-#define HTTPD_SUSPEND WM_USER + 3
-#define HTTPD_RESUME WM_USER + 4
-
-enum HTTPdState {
- hsStopped = 0,
- hsRunning,
- hsSuspended
-};
-
-class CHttpDaemon;
-
-class CHttpClient : public CServerClientSocket {
-public:
- CHttpClient();
- CHttpClient(LPCServerSocket lpServerSocket);
- virtual void OnRead();
- //virtual void OnWrite();
- virtual void OnClose();
- HANDLE ThreadHandle;
- DWORD ThreadId;
- CHttpParser Parser;
- void SplitUri(const LPSTR lpsUri, LPSTR lpsHost, LPSTR lpsResource, LPSTR lpsParams);
- void SplitResource(const LPSTR lpsResource, LPSTR lpsPath, LPSTR lpsFilename, LPSTR lpsExtension);
- void ProcessRequest();
- void SendFile(const LPSTR lpsFilename);
- void Report(LPCSTR lpsCode, const LPSTR lpsStr);
-private:
- BOOL bStop;
- LPSTR lpsBuffer;
- LONG nBufferSize;
- // unsigned __int64 nTotalRead;
- unsigned long long nTotalRead;
- // unsigned __int64 nFileSize;
- unsigned long long nFileSize;
- HANDLE hFile;
-};
-typedef CHttpClient* LPCHttpClient;
-
-class CHttpClientThread : public CServerClientThread {
-public:
- CHttpClientThread() {};
- CHttpClientThread(LPCServerClientSocket Socket);
- virtual void Execute();
-};
-typedef CHttpClientThread* LPCHttpClientThread;
-
-class CHttpDaemon : public CServerSocket {
-public:
- CHttpDaemon();
- virtual ~CHttpDaemon();
- HTTPdState GetState() const;
- virtual BOOL Start();
- virtual BOOL Stop();
- virtual LPCServerClientSocket OnGetSocket(LPCServerSocket lpServerSocket);
- virtual LPCServerClientThread OnGetThread(LPCServerClientSocket Socket);
- virtual void OnAccept(const LPCServerClientThread lpThread);
-private:
- HTTPdState State;
-};
-typedef CHttpDaemon* LPCHttpDaemon;
-
-class CHttpDaemonThread : public CThread {
-public:
- CHttpDaemonThread() {};
- virtual void Execute();
-private:
- CHttpDaemon *Daemon;
-};
-typedef CHttpDaemonThread* LPCHttpDaemonThread;
-
-#endif /* __HTTPD_H */