xref: /haiku/src/servers/app/AppServer.h (revision c302a243e15e640fae0f689e32cdf0c18749afee)
12724858bSAxel Dörfler /*
2*592ffe64SAxel Dörfler  * Copyright 2001-2015, Haiku, Inc.
32724858bSAxel Dörfler  * Distributed under the terms of the MIT license.
42724858bSAxel Dörfler  *
5b6284c7fSAxel Dörfler  * Authors:
6b6284c7fSAxel Dörfler  *		DarkWyrm <bpmagic@columbus.rr.com>
7*592ffe64SAxel Dörfler  *		Axel Dörfler, axeld@pinc-software.de
82724858bSAxel Dörfler  */
9be05d56cSAxel Dörfler #ifndef	APP_SERVER_H
10be05d56cSAxel Dörfler #define	APP_SERVER_H
113f319b33SMichael Lotz 
1233bbe223SAxel Dörfler 
1333bbe223SAxel Dörfler #include <Application.h>
14*592ffe64SAxel Dörfler #include <List.h>
15*592ffe64SAxel Dörfler #include <Locker.h>
1636deda69SAxel Dörfler #include <ObjectList.h>
17*592ffe64SAxel Dörfler #include <OS.h>
18*592ffe64SAxel Dörfler #include <String.h>
19*592ffe64SAxel Dörfler #include <Window.h>
2036deda69SAxel Dörfler 
2135a71b19SAxel Dörfler #include "MessageLooper.h"
22*592ffe64SAxel Dörfler #include "ServerConfig.h"
23*592ffe64SAxel Dörfler 
2433bbe223SAxel Dörfler 
25e3d73948SJulian Harnath #ifndef HAIKU_TARGET_PLATFORM_LIBBE_TEST
26e3d73948SJulian Harnath #	include <Server.h>
27e3d73948SJulian Harnath #	define SERVER_BASE BServer
28e3d73948SJulian Harnath #else
29e3d73948SJulian Harnath #	include "TestServerLoopAdapter.h"
30e3d73948SJulian Harnath #	define SERVER_BASE TestServerLoopAdapter
31e3d73948SJulian Harnath #endif
32e3d73948SJulian Harnath 
33e3d73948SJulian Harnath 
3433bbe223SAxel Dörfler class ServerApp;
3533bbe223SAxel Dörfler class BitmapManager;
3636deda69SAxel Dörfler class Desktop;
3733bbe223SAxel Dörfler 
38be05d56cSAxel Dörfler 
39e3d73948SJulian Harnath class AppServer : public SERVER_BASE {
4033bbe223SAxel Dörfler public:
41*592ffe64SAxel Dörfler 								AppServer(status_t* status);
4235a71b19SAxel Dörfler 	virtual						~AppServer();
4333bbe223SAxel Dörfler 
44*592ffe64SAxel Dörfler 	virtual	void				MessageReceived(BMessage* message);
45*592ffe64SAxel Dörfler 	virtual	bool				QuitRequested();
4633bbe223SAxel Dörfler 
4733bbe223SAxel Dörfler private:
48*592ffe64SAxel Dörfler 			Desktop*			_CreateDesktop(uid_t userID,
49*592ffe64SAxel Dörfler 									const char* targetScreen);
50e3d73948SJulian Harnath 	virtual	Desktop*			_FindDesktop(uid_t userID,
51*592ffe64SAxel Dörfler 									const char* targetScreen);
5236deda69SAxel Dörfler 
5336deda69SAxel Dörfler 			void				_LaunchInputServer();
5436deda69SAxel Dörfler 
5535a71b19SAxel Dörfler private:
5636deda69SAxel Dörfler 			BObjectList<Desktop> fDesktops;
5736deda69SAxel Dörfler 			BLocker				fDesktopLock;
5833bbe223SAxel Dörfler };
5933bbe223SAxel Dörfler 
60b6284c7fSAxel Dörfler 
61b5436616SAxel Dörfler extern BitmapManager *gBitmapManager;
622724858bSAxel Dörfler extern port_id gAppServerPort;
6392772bbdSStephan Aßmus 
6433bbe223SAxel Dörfler 
65be05d56cSAxel Dörfler #endif	/* APP_SERVER_H */
66