2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS HTTP Daemon
4 * FILE: include/httpd.h
13 #define HTTPD_START WM_USER + 1
14 #define HTTPD_STOP WM_USER + 2
15 #define HTTPD_SUSPEND WM_USER + 3
16 #define HTTPD_RESUME WM_USER + 4
26 class CHttpClient : public CServerClientSocket {
29 CHttpClient(LPCServerSocket lpServerSocket);
30 virtual void OnRead();
31 //virtual void OnWrite();
32 virtual void OnClose();
36 void SplitUri(const LPSTR lpsUri, LPSTR lpsHost, LPSTR lpsResource, LPSTR lpsParams);
37 void SplitResource(const LPSTR lpsResource, LPSTR lpsPath, LPSTR lpsFilename, LPSTR lpsExtension);
38 void ProcessRequest();
39 void SendFile(const LPSTR lpsFilename);
40 void Report(const LPSTR lpsCode, const LPSTR lpsStr);
45 // unsigned __int64 nTotalRead;
46 unsigned long long nTotalRead;
47 // unsigned __int64 nFileSize;
48 unsigned long long nFileSize;
51 typedef CHttpClient* LPCHttpClient;
53 class CHttpClientThread : public CServerClientThread {
55 CHttpClientThread() {};
56 CHttpClientThread(LPCServerClientSocket Socket);
57 virtual void Execute();
59 typedef CHttpClientThread* LPCHttpClientThread;
61 class CHttpDaemon : public CServerSocket {
64 virtual ~CHttpDaemon();
65 HTTPdState GetState() const;
68 virtual LPCServerClientSocket OnGetSocket(LPCServerSocket lpServerSocket);
69 virtual LPCServerClientThread OnGetThread(LPCServerClientSocket Socket);
70 virtual void OnAccept(const LPCServerClientThread lpThread);
74 typedef CHttpDaemon* LPCHttpDaemon;
76 class CHttpDaemonThread : public CThread {
78 CHttpDaemonThread() {};
79 virtual void Execute();
83 typedef CHttpDaemonThread* LPCHttpDaemonThread;
85 #endif /* __HTTPD_H */