AppServer.h revision 23ae77aa566566465e1fca7aedbf0f1139acca1e
1/*
2 * Copyright (c) 2001-2005, Haiku, Inc.
3 * Distributed under the terms of the MIT license.
4 *
5 * Author: DarkWyrm <bpmagic@columbus.rr.com>
6 */
7#ifndef	APP_SERVER_H
8#define	APP_SERVER_H
9
10
11#include <OS.h>
12#include <Locker.h>
13#include <List.h>
14#include <Application.h>
15#include <Window.h>
16#include <String.h>
17#include <ObjectList.h>
18#include <TokenSpace.h>
19
20#include "ServerConfig.h"
21#include "MessageLooper.h"
22
23class ServerApp;
24class BitmapManager;
25class Desktop;
26
27using BPrivate::BTokenSpace;
28
29namespace BPrivate {
30	class PortLink;
31};
32
33
34class AppServer : public MessageLooper  {
35	public:
36		AppServer();
37		virtual ~AppServer();
38
39		void			RunLooper();
40		virtual port_id	MessagePort() const { return fMessagePort; }
41
42	private:
43		virtual void	_DispatchMessage(int32 code, BPrivate::LinkReceiver& link);
44
45		Desktop*		_CreateDesktop(uid_t userID);
46		Desktop*		_FindDesktop(uid_t userID);
47
48		void			_LaunchInputServer();
49
50	private:
51		port_id			fMessagePort;
52
53		BObjectList<Desktop> fDesktops;
54		BLocker			fDesktopLock;
55};
56
57extern BitmapManager *gBitmapManager;
58extern port_id gAppServerPort;
59
60#endif	/* APP_SERVER_H */
61