aboutsummaryrefslogtreecommitdiff
path: root/nxcomp/src/ClientCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'nxcomp/src/ClientCache.h')
-rw-r--r--nxcomp/src/ClientCache.h417
1 files changed, 417 insertions, 0 deletions
diff --git a/nxcomp/src/ClientCache.h b/nxcomp/src/ClientCache.h
new file mode 100644
index 000000000..ed3361097
--- /dev/null
+++ b/nxcomp/src/ClientCache.h
@@ -0,0 +1,417 @@
+/**************************************************************************/
+/* */
+/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
+/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
+/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
+/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
+/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
+/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
+/* */
+/* NXCOMP, NX protocol compression and NX extensions to this software */
+/* are copyright of the aforementioned persons and companies. */
+/* */
+/* Redistribution and use of the present software is allowed according */
+/* to terms specified in the file LICENSE.nxcomp which comes in the */
+/* source distribution. */
+/* */
+/* All rights reserved. */
+/* */
+/* NOTE: This software has received contributions from various other */
+/* contributors, only the core maintainers and supporters are listed as */
+/* copyright holders. Please contact us, if you feel you should be listed */
+/* as copyright holder, as well. */
+/* */
+/**************************************************************************/
+
+#ifndef ClientCache_H
+#define ClientCache_H
+
+#include "Misc.h"
+
+#include "IntCache.h"
+#include "CharCache.h"
+#include "OpcodeCache.h"
+#include "XidCache.h"
+#include "FreeCache.h"
+
+#include "ChannelCache.h"
+
+class ClientCache : public ChannelCache
+{
+ public:
+
+ ClientCache();
+
+ ~ClientCache();
+
+ //
+ // Opcode prediction caches.
+ //
+
+ OpcodeCache opcodeCache;
+
+ //
+ // GC and drawables caches.
+ //
+
+ XidCache gcCache;
+ FreeCache freeGCCache;
+
+ XidCache drawableCache;
+ FreeCache freeDrawableCache;
+
+ XidCache windowCache;
+ FreeCache freeWindowCache;
+
+ //
+ // General-purpose caches.
+ //
+
+ IntCache cursorCache;
+ IntCache colormapCache;
+ IntCache visualCache;
+ CharCache depthCache;
+ CharCache resourceCache;
+ CharCache methodCache;
+
+ unsigned int lastFont;
+
+ //
+ // AllocColor request.
+ //
+
+ IntCache *allocColorRGBCache[3];
+
+ //
+ // ChangeProperty request.
+ //
+
+ CharCache changePropertyFormatCache;
+ IntCache changePropertyPropertyCache;
+ IntCache changePropertyTypeCache;
+ IntCache changePropertyData32Cache;
+
+ //
+ // ClearArea request.
+ //
+
+ IntCache *clearAreaGeomCache[4];
+
+ //
+ // ConfigureWindow request.
+ //
+
+ IntCache configureWindowBitmaskCache;
+ IntCache *configureWindowAttrCache[7];
+
+ //
+ // ConvertSelection request.
+ //
+
+ IntCache convertSelectionRequestorCache;
+ IntCache* convertSelectionAtomCache[3];
+ unsigned int convertSelectionLastTimestamp;
+
+ //
+ // CopyArea request.
+ //
+
+ IntCache *copyAreaGeomCache[6];
+
+ //
+ // CopyPlane request.
+ //
+
+ IntCache *copyPlaneGeomCache[6];
+ IntCache copyPlaneBitPlaneCache;
+
+ //
+ // CreateGC request.
+ //
+
+ IntCache createGCBitmaskCache;
+ IntCache *createGCAttrCache[23];
+
+ //
+ // CreatePixmap request.
+ //
+
+ IntCache createPixmapIdCache;
+ unsigned int createPixmapLastId;
+ IntCache createPixmapXCache;
+ IntCache createPixmapYCache;
+
+ //
+ // CreateWindow request.
+ //
+
+ IntCache *createWindowGeomCache[6];
+ IntCache createWindowBitmaskCache;
+ IntCache *createWindowAttrCache[15];
+
+ //
+ // FillPoly request.
+ //
+
+ IntCache fillPolyNumPointsCache;
+ IntCache *fillPolyXRelCache[10];
+ IntCache *fillPolyXAbsCache[10];
+ IntCache *fillPolyYRelCache[10];
+ IntCache *fillPolyYAbsCache[10];
+ unsigned int fillPolyRecentX[8];
+ unsigned int fillPolyRecentY[8];
+ unsigned int fillPolyIndex;
+
+ //
+ // GetSelectionOwner request.
+ //
+
+ IntCache getSelectionOwnerSelectionCache;
+
+ //
+ // GrabButton request (also used for GrabPointer).
+ //
+
+ IntCache grabButtonEventMaskCache;
+ IntCache grabButtonConfineCache;
+ CharCache grabButtonButtonCache;
+ IntCache grabButtonModifierCache;
+
+ //
+ // GrabKeyboard request.
+ //
+
+ unsigned int grabKeyboardLastTimestamp;
+
+ //
+ // ImageText8/16 request.
+ //
+
+ IntCache imageTextLengthCache;
+ unsigned int imageTextLastX;
+ unsigned int imageTextLastY;
+ IntCache imageTextCacheX;
+ IntCache imageTextCacheY;
+
+ //
+ // PolyFillRectangle request.
+ //
+
+ IntCache *polyFillRectangleCacheX[4];
+ IntCache *polyFillRectangleCacheY[4];
+ IntCache *polyFillRectangleCacheWidth[4];
+ IntCache *polyFillRectangleCacheHeight[4];
+
+ //
+ // PolyLine request.
+ //
+
+ IntCache *polyLineCacheX[2];
+ IntCache *polyLineCacheY[2];
+
+ //
+ // PolyPoint request.
+ //
+
+ IntCache *polyPointCacheX[2];
+ IntCache *polyPointCacheY[2];
+
+ //
+ // PolyRectangle request.
+ //
+
+ IntCache *polyRectangleGeomCache[4];
+
+ //
+ // PolySegment request.
+ //
+
+ IntCache polySegmentCacheX;
+ IntCache polySegmentCacheY;
+ unsigned int polySegmentLastX[2];
+ unsigned int polySegmentLastY[2];
+ unsigned int polySegmentCacheIndex;
+
+ //
+ // PolyText8/16 request.
+ //
+
+ unsigned int polyTextLastX;
+ unsigned int polyTextLastY;
+ IntCache polyTextCacheX;
+ IntCache polyTextCacheY;
+ IntCache polyTextFontCache;
+ CharCache polyTextDeltaCache;
+
+ //
+ // PutImage request.
+ //
+
+ IntCache putImageWidthCache;
+ IntCache putImageHeightCache;
+ unsigned int putImageLastX;
+ unsigned int putImageLastY;
+ IntCache putImageXCache;
+ IntCache putImageYCache;
+ CharCache putImageLeftPadCache;
+
+ //
+ // GetImage request.
+ //
+
+ IntCache getImagePlaneMaskCache;
+
+ //
+ // QueryColors request.
+ //
+
+ unsigned int queryColorsLastPixel;
+
+ //
+ // SetClipRectangles request.
+ //
+
+ IntCache setClipRectanglesXCache;
+ IntCache setClipRectanglesYCache;
+ IntCache *setClipRectanglesGeomCache[4];
+
+ //
+ // SetDashes request.
+ //
+
+ IntCache setDashesLengthCache;
+ IntCache setDashesOffsetCache;
+ CharCache setDashesDashCache_[2];
+
+ //
+ // SetSelectionOwner request.
+ //
+
+ IntCache setSelectionOwnerCache;
+ IntCache setSelectionOwnerTimestampCache;
+
+ //
+ // TranslateCoords request.
+ //
+
+ IntCache translateCoordsSrcCache;
+ IntCache translateCoordsDstCache;
+ IntCache translateCoordsXCache;
+ IntCache translateCoordsYCache;
+
+ //
+ // SendEvent request.
+ //
+
+ IntCache sendEventMaskCache;
+ CharCache sendEventCodeCache;
+ CharCache sendEventByteDataCache;
+ unsigned int sendEventLastSequence;
+ IntCache sendEventIntDataCache;
+ CharCache sendEventEventCache;
+
+ //
+ // PolyFillArc request.
+ //
+
+ IntCache *polyFillArcCacheX[2];
+ IntCache *polyFillArcCacheY[2];
+ IntCache *polyFillArcCacheWidth[2];
+ IntCache *polyFillArcCacheHeight[2];
+ IntCache *polyFillArcCacheAngle1[2];
+ IntCache *polyFillArcCacheAngle2[2];
+
+ //
+ // PolyArc request.
+ //
+
+ IntCache *polyArcCacheX[2];
+ IntCache *polyArcCacheY[2];
+ IntCache *polyArcCacheWidth[2];
+ IntCache *polyArcCacheHeight[2];
+ IntCache *polyArcCacheAngle1[2];
+ IntCache *polyArcCacheAngle2[2];
+
+ //
+ // PutPackedImage request.
+ //
+
+ IntCache putPackedImageSrcLengthCache;
+ IntCache putPackedImageDstLengthCache;
+
+ //
+ // Shape extension requests.
+ //
+
+ CharCache shapeOpcodeCache;
+ IntCache *shapeDataCache[8];
+
+ //
+ // Generic requests.
+ //
+
+ CharCache genericRequestOpcodeCache;
+ IntCache *genericRequestDataCache[8];
+
+ //
+ // Render extension requests.
+ //
+
+ OpcodeCache renderOpcodeCache;
+
+ CharCache renderOpCache;
+
+ XidCache renderSrcPictureCache;
+ XidCache renderMaskPictureCache;
+ XidCache renderDstPictureCache;
+ FreeCache renderFreePictureCache;
+
+ IntCache renderGlyphSetCache;
+ FreeCache renderFreeGlyphSetCache;
+
+ IntCache renderIdCache;
+ IntCache renderLengthCache;
+ IntCache renderFormatCache;
+ IntCache renderValueMaskCache;
+ IntCache renderNumGlyphsCache;
+
+ IntCache renderXCache;
+ IntCache renderYCache;
+
+ unsigned int renderLastX;
+ unsigned int renderLastY;
+
+ IntCache renderWidthCache;
+ IntCache renderHeightCache;
+
+ unsigned int renderLastId;
+
+ IntCache *renderDataCache[16];
+
+ IntCache renderGlyphXCache;
+ IntCache renderGlyphYCache;
+
+ unsigned int renderGlyphX;
+ unsigned int renderGlyphY;
+
+ IntCache *renderCompositeGlyphsDataCache[16];
+ unsigned int renderLastCompositeGlyphsData;
+
+ IntCache *renderCompositeDataCache[3];
+
+ //
+ // SetCacheParameters request.
+ //
+
+ IntCache setCacheParametersCache;
+
+ //
+ // Encode new XID values based
+ // on the last value encoded.
+ //
+
+ IntCache lastIdCache;
+ unsigned int lastId;
+};
+
+#endif /* ClientCache_H */