2939a1dcc8
More work on Desktop and DesktopClasses minor API tweak to DisplayDriver Added conditional compilation stuff to AppServer.cpp for debugging purposes TokenHandler now uses BLockers instead of semaphores for locking Can now run the server and see something git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2717 a95241bf-73f2-0310-859d-f6bbb57e9c96
65 lines
1.6 KiB
C++
65 lines
1.6 KiB
C++
#ifndef _OPENBEOS_APP_SERVER_H_
|
|
#define _OPENBEOS_APP_SERVER_H_
|
|
|
|
#include <OS.h>
|
|
#include <Locker.h>
|
|
#include <List.h>
|
|
#include <Application.h>
|
|
#include <Window.h>
|
|
#include "Decorator.h"
|
|
#include "ServerConfig.h"
|
|
|
|
class Layer;
|
|
class BMessage;
|
|
class ServerApp;
|
|
class DisplayDriver;
|
|
|
|
/*!
|
|
\class AppServer AppServer.h
|
|
\brief main manager object for the app_server
|
|
|
|
File for the main app_server thread. This particular thread monitors for
|
|
application start and quit messages. It also starts the housekeeping threads
|
|
and initializes most of the server's globals.
|
|
*/
|
|
#if DISPLAYDRIVER == HWDRIVER
|
|
class AppServer
|
|
#else
|
|
class AppServer : public BApplication
|
|
#endif
|
|
{
|
|
public:
|
|
AppServer(void);
|
|
~AppServer(void);
|
|
static int32 PollerThread(void *data);
|
|
static int32 PicassoThread(void *data);
|
|
thread_id Run(void);
|
|
void MainLoop(void);
|
|
bool LoadDecorator(const char *path);
|
|
void DispatchMessage(int32 code, int8 *buffer);
|
|
void Broadcast(int32 code);
|
|
void HandleKeyMessage(int32 code, int8 *buffer);
|
|
ServerApp *FindApp(const char *sig);
|
|
private:
|
|
friend Decorator *new_decorator(BRect rect, const char *title, int32 wlook, int32 wfeel,
|
|
int32 wflags, DisplayDriver *ddriver);
|
|
|
|
create_decorator *make_decorator; // global function pointer
|
|
|
|
port_id _messageport,_mouseport;
|
|
image_id _decorator_id;
|
|
bool _quitting_server;
|
|
BList *_applist;
|
|
int32 _active_app;
|
|
ServerApp *_p_active_app;
|
|
thread_id _poller_id, _picasso_id;
|
|
|
|
sem_id _active_lock, _applist_lock, _decor_lock;
|
|
bool _exit_poller;
|
|
DisplayDriver *_driver;
|
|
};
|
|
|
|
Decorator *new_decorator(BRect rect, const char *title, int32 wlook, int32 wfeel,
|
|
int32 wflags, DisplayDriver *ddriver);
|
|
#endif
|