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 __int64 nFileSize
;
49 typedef CHttpClient
* LPCHttpClient
;
51 class CHttpClientThread
: public CServerClientThread
{
53 CHttpClientThread() {};
54 CHttpClientThread(LPCServerClientSocket Socket
);
55 virtual void Execute();
57 typedef CHttpClientThread
* LPCHttpClientThread
;
59 class CHttpDaemon
: public CServerSocket
{
62 virtual ~CHttpDaemon();
63 HTTPdState
GetState() const;
66 virtual LPCServerClientSocket
OnGetSocket(LPCServerSocket lpServerSocket
);
67 virtual LPCServerClientThread
OnGetThread(LPCServerClientSocket Socket
);
68 virtual void OnAccept(const LPCServerClientThread lpThread
);
72 typedef CHttpDaemon
* LPCHttpDaemon
;
74 class CHttpDaemonThread
: public CThread
{
76 CHttpDaemonThread() {};
77 virtual void Execute();
81 typedef CHttpDaemonThread
* LPCHttpDaemonThread
;
83 #endif /* __HTTPD_H */