aboutsummaryrefslogtreecommitdiff
path: root/nxcomp/ClientCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'nxcomp/ClientCache.h')
-rw-r--r--nxcomp/ClientCache.h429
1 files changed, 429 insertions, 0 deletions
diff --git a/nxcomp/ClientCache.h b/nxcomp/ClientCache.h
new file mode 100644
index 000000000..6702e5b66
--- /dev/null
+++ b/nxcomp/ClientCache.h
@@ -0,0 +1,429 @@
+/**************************************************************************/
+/* */
+/* 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. */
+/* */
+/**************************************************************************/
+
+#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 "TextCompressor.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.
+ //
+
+ CharCache textCache[CLIENT_TEXT_CACHE_SIZE];
+ 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;
+ TextCompressor changePropertyTextCompressor;
+
+ //
+ // 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;
+ TextCompressor imageTextTextCompressor;
+
+ //
+ // InternAtom request.
+ //
+
+ TextCompressor internAtomTextCompressor;
+
+ //
+ // OpenFont request.
+ //
+
+ TextCompressor openFontTextCompressor;
+
+ //
+ // 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;
+ TextCompressor polyTextTextCompressor;
+
+ //
+ // 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];
+
+ TextCompressor renderTextCompressor;
+
+ 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 */