1/*
2 * Copyright 2009, Haiku, Inc.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Michael Lotz <mmlr@mlotz.ch>
7 *		François Revol <revol@free.fr>
8 */
9#ifndef WEB_SERVER_H
10#define WEB_SERVER_H
11
12//#include "WebWorker.h"
13
14#include <Locker.h>
15#include <ObjectList.h>
16#include <OS.h>
17#include <SupportDefs.h>
18
19class BNetEndpoint;
20class WebHandler;
21class WebWorker;
22
23class WebServer {
24public:
25								WebServer(BNetEndpoint *listener);
26								~WebServer();
27
28//		BNetEndpoint *			Endpoint() { return fEndpoint; }
29
30		void					AddHandler(WebHandler *handler);
31
32private:
33static	int32					_NetworkReceiverEntry(void *data);
34		status_t				_NetworkReceiver();
35
36		BNetEndpoint *			fListener;
37
38		thread_id				fReceiverThread;
39		bool					fStopThread;
40
41		BLocker					fLocker;
42		BObjectList<WebHandler>	fHandlers;
43		BObjectList<WebWorker>	fWorkers;
44//		BNetEndpoint *			fEndpoint;
45};
46
47#endif // WEB_SERVER_H
48