diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:30 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:30 +0200 |
commit | 9e3371021541dbb7d8428b419c2e77156b166f1a (patch) | |
tree | 752906c36559aa58c53945824724222f2646d850 /nx-X11/programs/Xserver/hw/nxagent/Client.h | |
parent | edddbe8765d46b5040fdde7b04eeee8e21282114 (diff) | |
download | nx-libs-5fb244da1d4c30727b02dd13359c46b0d6ae5a5d.tar.gz nx-libs-5fb244da1d4c30727b02dd13359c46b0d6ae5a5d.tar.bz2 nx-libs-5fb244da1d4c30727b02dd13359c46b0d6ae5a5d.zip |
Imported nxagent-3.1.0-2.tar.gznxagent/3.1.0-2
Summary: Imported nxagent-3.1.0-2.tar.gz
Keywords:
Imported nxagent-3.1.0-2.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Client.h')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Client.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Client.h b/nx-X11/programs/Xserver/hw/nxagent/Client.h new file mode 100644 index 000000000..5f9fa1ebb --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/Client.h @@ -0,0 +1,119 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */ +/* */ +/* NXAGENT, NX protocol compression and NX extensions to this software */ +/* are copyright of NoMachine. Redistribution and use of the present */ +/* software is allowed according to terms specified in the file LICENSE */ +/* which comes in the source distribution. */ +/* */ +/* Check http://www.nomachine.com/licensing.html for applicability. */ +/* */ +/* NX and NoMachine are trademarks of NoMachine S.r.l. */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + +#ifndef __Client_H__ +#define __Client_H__ + +#define MAX_CONNECTIONS 256 + +/* + * The master nxagent holds in nxagentShadowCounter + * the number of shadow nxagents connected to itself. + */ + +extern int nxagentShadowCounter; + +enum ClientHint +{ + UNKNOWN = 0, + NXCLIENT_WINDOW, + NXCLIENT_DIALOG, + NXAGENT_SHADOW +}; + +typedef struct _PrivClientRec +{ + int clientState; + long clientBytes; + enum ClientHint clientHint; + +} PrivClientRec; + +extern int nxagentClientPrivateIndex; + +#define nxagentClientPriv(pClient) \ + ((PrivClientRec *)((pClient)->devPrivates[nxagentClientPrivateIndex].ptr)) + +void nxagentInitClientPrivates(ClientPtr); + +#define nxagentClientAddBytes(pClient, size) \ + (nxagentClientPriv(pClient) -> clientBytes += (size)) + +#define nxagentClientBytes(pClient) \ + (nxagentClientPriv(pClient) -> clientBytes) + +#define nxagentClientHint(pClient) \ + (nxagentClientPriv(pClient) -> clientHint) + +#define nxagentClientIsDialog(pClient) \ + (nxagentClientHint(pClient) == NXCLIENT_DIALOG) + +/* + * The actual reason why the client + * is sleeping. + */ + +#define SleepingBySplit 1 + +#define nxagentNeedWakeup(client) \ + ((nxagentClientPriv(client) -> \ + clientState) != 0) + +#define nxagentNeedWakeupBySplit(client) \ + (((nxagentClientPriv(client) -> \ + clientState) & SleepingBySplit) != 0) + +void nxagentGuessClientHint(ClientPtr, Atom, char*); + +void nxagentGuessShadowHint(ClientPtr, Atom); + +void nxagentCheckIfShadowAgent(ClientPtr); + +/* + * Suspend or restart the agent's + * client. + */ + +int nxagentSuspendBySplit(ClientPtr client); +int nxagentWakeupBySplit(ClientPtr client); + +/* + * Wait until the given client is + * restarted. + */ + +void nxagentWaitWakeupBySplit(ClientPtr client); + +/* +FIXME: This must be moved to Drawable.h. +*/ +void nxagentWaitDrawable(DrawablePtr pDrawable); + +/* + * Wakeup all the sleeping clients. + */ + +void nxagentWakeupByReconnect(void); + +/* + * Reset the client state before + * closing it down. + */ + +void nxagentWakeupByReset(ClientPtr client); + +#endif /* __Client_H__ */ |