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 */