Shadowrun: Awakened 29 September 2011 - Build 871
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes
RakNet::StringCompressor Class Reference

Writes and reads strings to and from bitstreams. More...

#include <StringCompressor.h>

List of all members.

Public Member Functions

bool DecodeString (char *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0)
bool DecodeString (RakNet::RakString *output, int maxCharsToWrite, RakNet::BitStream *input, uint8_t languageId=0)
void EncodeString (const char *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0)
void EncodeString (const RakNet::RakString *input, int maxCharsToWrite, RakNet::BitStream *output, uint8_t languageId=0)
void GenerateTreeFromStrings (unsigned char *input, unsigned inputLength, uint8_t languageId)
 StringCompressor ()
 ~StringCompressor ()

Static Public Member Functions

static void AddReference (void)
 Used so I can allocate and deallocate this singleton at runtime.
static StringCompressorInstance (void)
static void RemoveReference (void)
 Used so I can allocate and deallocate this singleton at runtime.

Private Attributes

DataStructures::Map< int,
HuffmanEncodingTree * > 
huffmanEncodingTrees
 Pointer to the huffman encoding trees.

Static Private Attributes

static StringCompressorinstance
 Singleton instance.
static int referenceCount

Detailed Description

Only works with ASCII strings. The default compression is for English. You can call GenerateTreeFromStrings to compress and decompress other languages efficiently as well.

Definition at line 38 of file StringCompressor.h.


Constructor & Destructor Documentation

RakNet::StringCompressor::~StringCompressor ( )
RakNet::StringCompressor::StringCompressor ( )

Member Function Documentation

static void RakNet::StringCompressor::AddReference ( void  ) [static]
bool RakNet::StringCompressor::DecodeString ( char *  output,
int  maxCharsToWrite,
RakNet::BitStream input,
uint8_t  languageId = 0 
)

Writes input to output, uncompressed. Takes care of the null terminator for you.

Parameters:
[out]outputA block of bytes to receive the output
[in]maxCharsToWriteSize, 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]inputThe bitstream containing the compressed string
[in]languageIDWhich language to use
bool RakNet::StringCompressor::DecodeString ( RakNet::RakString output,
int  maxCharsToWrite,
RakNet::BitStream input,
uint8_t  languageId = 0 
)
void RakNet::StringCompressor::EncodeString ( const char *  input,
int  maxCharsToWrite,
RakNet::BitStream output,
uint8_t  languageId = 0 
)

Writes input to output, compressed. Takes care of the null terminator for you.

Parameters:
[in]inputPointer to an ASCII string
[in]maxCharsToWriteThe max number of bytes to write of input. Use 0 to mean no limit.
[out]outputThe bitstream to write the compressed string to
[in]languageIDWhich language to use
void RakNet::StringCompressor::EncodeString ( const RakNet::RakString input,
int  maxCharsToWrite,
RakNet::BitStream output,
uint8_t  languageId = 0 
)
void RakNet::StringCompressor::GenerateTreeFromStrings ( unsigned char *  input,
unsigned  inputLength,
uint8_t  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.

Parameters:
[in]inputAn array of bytes which should point to text.
[in]inputLengthLength of input
[in]languageIDAn identifier for the language / string table to generate the tree for. English is automatically created with ID 0 in the constructor.
static StringCompressor* RakNet::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.

Returns:
the unique instance of the StringCompressor

Referenced by SraNetwork::Helpers::GetStringFromBuffer(), and SraNetwork::Helpers::StoreStringInBuffer().

static void RakNet::StringCompressor::RemoveReference ( void  ) [static]

Member Data Documentation

Definition at line 98 of file StringCompressor.h.

Definition at line 95 of file StringCompressor.h.

Definition at line 100 of file StringCompressor.h.


The documentation for this class was generated from the following file:

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net