Commit 5c495241 authored by Fernando Carvajal's avatar Fernando Carvajal

Remove TextCompressor class and files from nxcomp

This commit removes TextCompressor class references from ClientCache and ServerCache as it's no longer used after removing old protocol's compatibility code from nxcomp. It also removes the attribute textCache from both classes as it's no longer used either. Finally the header and source files associated with the TextCompressor class are also deleted and removed from the compilation process. Refs: ArcticaProject/nx-libs#108
parent 00464aea
......@@ -1131,8 +1131,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h
nxcomp/StaticCompressor.h
nxcomp/Statistics.cpp
nxcomp/Statistics.h
nxcomp/TextCompressor.cpp
nxcomp/TextCompressor.h
nxcomp/Timestamp.cpp
nxcomp/Timestamp.h
nxcomp/TranslateCoords.cpp
......
......@@ -19,13 +19,6 @@
#define ChannelCache_H
//
// Elements in array of caches used in TextCompressor.
//
const unsigned int CLIENT_TEXT_CACHE_SIZE = 9999;
const unsigned int SERVER_TEXT_CACHE_SIZE = 9999;
//
// Sizes of optional fields for ConfigureWindow
// request.
//
......
......@@ -100,8 +100,6 @@ ClientCache::ClientCache() :
renderLastId(0),
renderTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE),
renderGlyphXCache(16), renderGlyphYCache(16),
renderGlyphX(0), renderGlyphY(0),
......
......@@ -26,8 +26,6 @@
#include "XidCache.h"
#include "FreeCache.h"
#include "TextCompressor.h"
#include "ChannelCache.h"
class ClientCache : public ChannelCache
......@@ -61,7 +59,6 @@ class ClientCache : public ChannelCache
// General-purpose caches.
//
CharCache textCache[CLIENT_TEXT_CACHE_SIZE];
IntCache cursorCache;
IntCache colormapCache;
IntCache visualCache;
......@@ -383,8 +380,6 @@ class ClientCache : public ChannelCache
IntCache *renderDataCache[16];
TextCompressor renderTextCompressor;
IntCache renderGlyphXCache;
IntCache renderGlyphYCache;
......
......@@ -165,7 +165,6 @@ CXXSRC = Loop.cpp \
BlockCache.cpp \
BlockCacheSet.cpp \
StaticCompressor.cpp \
TextCompressor.cpp \
Unpack.cpp \
Alpha.cpp \
Colormap.cpp \
......
......@@ -23,7 +23,6 @@
#include "IntCache.h"
#include "CharCache.h"
#include "OpcodeCache.h"
#include "TextCompressor.h"
#include "BlockCache.h"
#include "BlockCacheSet.h"
......@@ -47,7 +46,6 @@ class ServerCache : public ChannelCache
// General-purpose caches.
//
CharCache textCache[SERVER_TEXT_CACHE_SIZE];
IntCache replySequenceCache;
IntCache eventSequenceCache;
unsigned int lastTimestamp;
......
/**************************************************************************/
/* */
/* 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 "TextCompressor.h"
#include "EncodeBuffer.h"
#include "DecodeBuffer.h"
//
// The compression obtained by this class is
// very poor. In newer versions the text is
// simply appended to the encode buffer and
// compressed by leveraging the final stream
// compression.
//
void
TextCompressor::encodeChar(unsigned char ch, EncodeBuffer& encodeBuffer)
{
// encode each successive character of text using
// a predictive model where most of the last 3 characters
// (low order 7 bits of the previous character, plus the
// low order 5 bits of the character before that, plus
// the low order 3 bits of the character before that)
// are used to find the right cache...
CharCache& cache = cache_[key_ % cacheSize_];
if ((key_ >= 128) && (cache.getSize() == 0))
{
// 3rd-order model doesn't have any statistics yet,
// so use the 1st-order one instead
CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_];
encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache2);
cache.insert(ch);
}
else
{
encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache);
}
key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (ch & 0x7f));
}
unsigned char
TextCompressor::decodeChar(DecodeBuffer& decodeBuffer)
{
unsigned char nextChar;
CharCache& cache = cache_[key_ % cacheSize_];
if ((key_ >= 128) && (cache.getSize() == 0))
{
CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_];
decodeBuffer.decodeCachedValue(nextChar, 8, cache2);
cache.insert(nextChar);
}
else
{
decodeBuffer.decodeCachedValue(nextChar, 8, cache);
}
key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (nextChar & 0x7f));
return nextChar;
}
/**************************************************************************/
/* */
/* 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 TextCompressor_H
#define TextCompressor_H
#include "CharCache.h"
class EncodeBuffer;
class DecodeBuffer;
class TextCompressor
{
public:
TextCompressor(CharCache* cache, unsigned int cacheSize):
cache_(cache),
cacheSize_(cacheSize),
key_(0)
{
}
void encodeChar(unsigned char ch, EncodeBuffer &);
unsigned char decodeChar(DecodeBuffer &);
void reset(unsigned int newKey = 0)
{
key_ = newKey;
}
private:
CharCache* cache_;
unsigned int cacheSize_;
unsigned int key_;
};
#endif /* TextCompressor_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment