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