diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2016-04-19 10:47:43 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2016-04-19 10:47:43 +0200 |
commit | 03b65211260ff757b35a367f8936fd5e882ce56c (patch) | |
tree | 014155ca365a93687f99ea6492dd2c9d3e80593e /nxcomp/TextCompressor.cpp | |
parent | 2ffe52c5ecb7cf6af111c685eee7f8fcfd1139a9 (diff) | |
parent | 5c495241069708e9b1bbf6e57fd49599be540b63 (diff) | |
download | nx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.tar.gz nx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.tar.bz2 nx-libs-03b65211260ff757b35a367f8936fd5e882ce56c.zip |
Merge branch 'fcarvajaldev-3.6.x-remove-old-proto-compat' into 3.6.x
Diffstat (limited to 'nxcomp/TextCompressor.cpp')
-rw-r--r-- | nxcomp/TextCompressor.cpp | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/nxcomp/TextCompressor.cpp b/nxcomp/TextCompressor.cpp deleted file mode 100644 index 16131222c..000000000 --- a/nxcomp/TextCompressor.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************/ -/* */ -/* 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; -} |