#include <StringCompressor.h>
Public Member Functions | |
| ~StringCompressor () | |
| Destructor. | |
| void | GenerateTreeFromStrings (unsigned char *input, unsigned inputLength, int languageID) |
| void | EncodeString (const char *input, int maxCharsToWrite, RakNet::BitStream *output, int languageID=0) |
| bool | DecodeString (char *output, int maxCharsToWrite, RakNet::BitStream *input, int languageID=0) |
| StringCompressor () | |
| Private Constructor. | |
Static Public Member Functions | |
| static StringCompressor * | Instance (void) |
| static void | AddReference (void) |
| Used so I can allocate and deallocate this singleton at runtime. | |
| static void | RemoveReference (void) |
| Used so I can allocate and deallocate this singleton at runtime. | |
Only works with ASCII strings. The default compression is for English. You can call GenerateTreeFromStrings to compress and decompress other languages efficiently as well.
| bool StringCompressor::DecodeString | ( | char * | output, | |
| int | maxCharsToWrite, | |||
| RakNet::BitStream * | input, | |||
| int | languageID = 0 | |||
| ) |
Writes input to output, uncompressed. Takes care of the null terminator for you.
| [out] | output | A block of bytes to receive the output |
| [in] | maxCharsToWrite | Size, in bytes, of output . A NULL terminator will always be appended to the output string. If the maxCharsToWrite is not large enough, the string will be truncated. |
| [in] | input | The bitstream containing the compressed string |
| [in] | languageID | Which language to use |
| void StringCompressor::EncodeString | ( | const char * | input, | |
| int | maxCharsToWrite, | |||
| RakNet::BitStream * | output, | |||
| int | languageID = 0 | |||
| ) |
Writes input to output, compressed. Takes care of the null terminator for you.
| [in] | input | Pointer to an ASCII string |
| [in] | maxCharsToWrite | The max number of bytes to write of input. Use 0 to mean no limit. |
| [out] | output | The bitstream to write the compressed string to |
| [in] | languageID | Which language to use |
| void StringCompressor::GenerateTreeFromStrings | ( | unsigned char * | input, | |
| unsigned | inputLength, | |||
| int | languageID | |||
| ) |
Given an array of strings, such as a chat log, generate the optimal encoding tree for it. This function is optional and if it is not called a default tree will be used instead.
| [in] | input | An array of bytes which should point to text. |
| [in] | inputLength | Length of input |
| [in] | languageID | An identifier for the language / string table to generate the tree for. English is automatically created with ID 0 in the constructor. |
| StringCompressor * StringCompressor::Instance | ( | void | ) | [static] |
static function because only static functions can access static members The RakPeer constructor adds a reference to this class, so don't call this until an instance of RakPeer exists, or unless you call AddReference yourself.
1.5.7.1