aboutsummaryrefslogtreecommitdiff
path: root/nxcomp/ServerCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'nxcomp/ServerCache.cpp')
-rw-r--r--nxcomp/ServerCache.cpp186
1 files changed, 186 insertions, 0 deletions
diff --git a/nxcomp/ServerCache.cpp b/nxcomp/ServerCache.cpp
new file mode 100644
index 000000000..f0cc6f825
--- /dev/null
+++ b/nxcomp/ServerCache.cpp
@@ -0,0 +1,186 @@
+/**************************************************************************/
+/* */
+/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */
+/* */
+/* NXCOMP, 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 Medialogic S.p.A. */
+/* */
+/* All rights reserved. */
+/* */
+/**************************************************************************/
+
+#include "ServerCache.h"
+
+//
+// Some global caches used to store information
+// common to all X connections.
+//
+
+BlockCache ServerCache::lastInitReply;
+BlockCache ServerCache::lastKeymap;
+unsigned char ServerCache::getKeyboardMappingLastKeysymsPerKeycode = 0;
+BlockCache ServerCache::getKeyboardMappingLastMap;
+BlockCache ServerCache::getModifierMappingLastMap;
+BlockCache ServerCache::xResources;
+BlockCacheSet ServerCache::queryFontFontCache(16);
+
+ServerCache::ServerCache() :
+
+ replySequenceCache(6), eventSequenceCache(6),
+ lastTimestamp(0), visualCache(8), colormapCache(8),
+
+ errorMinorCache(8),
+
+ colormapNotifyWindowCache(8), colormapNotifyColormapCache(8),
+
+ createNotifyWindowCache(8), createNotifyLastWindow(0),
+
+ exposeWindowCache(12),
+
+ focusInWindowCache(8),
+
+ keyPressLastKey(0),
+
+ mapNotifyEventCache(8), mapNotifyWindowCache(8),
+
+ motionNotifyTimestampCache(8), motionNotifyLastRootX(0),
+ motionNotifyLastRootY(0), motionNotifyRootXCache(8),
+ motionNotifyRootYCache(8), motionNotifyEventXCache(8),
+ motionNotifyEventYCache(8), motionNotifyStateCache(8),
+
+ noExposeDrawableCache(8), noExposeMinorCache(8),
+
+ propertyNotifyWindowCache(8), propertyNotifyAtomCache(8),
+
+ reparentNotifyWindowCache(8),
+
+ selectionClearWindowCache(8), selectionClearAtomCache(8),
+
+ visibilityNotifyWindowCache(8),
+
+ getGeometryRootCache(8),
+
+ getInputFocusWindowCache(8),
+
+ getKeyboardMappingKeysymCache(8),
+
+ getPropertyTypeCache(8),
+ getPropertyTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE),
+
+ getSelectionOwnerCache(8),
+
+ getWindowAttributesClassCache(8), getWindowAttributesPlanesCache(8),
+ getWindowAttributesPixelCache(8), getWindowAttributesAllEventsCache(8),
+ getWindowAttributesYourEventsCache(8),
+ getWindowAttributesDontPropagateCache(8),
+
+ queryPointerRootCache(8), queryPointerChildCache(8),
+
+ translateCoordsChildCache(8), translateCoordsXCache(8),
+ translateCoordsYCache(8),
+
+ queryTreeWindowCache(8),
+
+ getAtomNameTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE)
+
+{
+ unsigned int i;
+
+ for (i = 0; i < 3; i++)
+ {
+ configureNotifyWindowCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ configureNotifyGeomCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ exposeGeomCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ motionNotifyWindowCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ getGeometryGeomCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 23; i++)
+ {
+ keyPressCache[i] = 0;
+ }
+
+ for (i = 0; i < 6; i++)
+ {
+ queryFontCharInfoCache[i] = new IntCache(8);
+ queryFontLastCharInfo[i] = 0;
+ }
+
+ for (i = 0; i < 12; i++)
+ {
+ genericReplyIntCache[i] = new IntCache(8);
+ }
+
+ for (i = 0; i < 14; i++)
+ {
+ genericEventIntCache[i] = new IntCache(8);
+ }
+}
+
+
+ServerCache::~ServerCache()
+{
+ unsigned int i;
+
+ for (i = 0; i < 3; i++)
+ {
+ delete configureNotifyWindowCache[i];
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ delete configureNotifyGeomCache[i];
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ delete exposeGeomCache[i];
+ }
+
+ for (i = 0; i < 3; i++)
+ {
+ delete motionNotifyWindowCache[i];
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ delete getGeometryGeomCache[i];
+ }
+
+ for (i = 0; i < 6; i++)
+ {
+ delete queryFontCharInfoCache[i];
+ }
+
+ for (i = 0; i < 12; i++)
+ {
+ delete genericReplyIntCache[i];
+ }
+
+ for (i = 0; i < 14; i++)
+ {
+ delete genericEventIntCache[i];
+ }
+}