Torque2D Reference
|
#include <stringTable.h>
Public Member Functions | |
StringTableEntry | insert (const char *string, bool caseSens=false) |
StringTableEntry | insertn (const char *string, S32 len, bool caseSens=false) |
StringTableEntry | lookup (const char *string, bool caseSens=false) |
StringTableEntry | lookupn (const char *string, S32 len, bool caseSens=false) |
void | resize (const U32 newSize) |
Static Public Member Functions | |
static void | create () |
static void | destroy () |
static U32 | hashString (const char *in_pString) |
Hash a string into a U32. More... | |
static U32 | hashStringn (const char *in_pString, S32 len) |
Hash a string of given length into a U32. More... | |
Static Public Attributes | |
static StringTableEntry | EmptyString |
Empty string. More... | |
Implementation details | |
static const U32 | csm_stInitSize = 29 |
_StringTable () | |
~_StringTable () | |
A global table for the hashing and tracking of strings.
Only one _StringTable is ever instantiated in Torque. It is accessible via the global variable StringTable.
StringTable is used to manage strings in Torque. It performs the following tasks:
But why is this useful, you ask? Because every string that's run through the StringTable is stored once and only once, every string has one and only one pointer mapped to it. As a pointer is an integer value (usually an unsigned int), so we can do several neat things:
The scripting engine and the resource manager are the primary users of the StringTable.
|
protected |
|
protected |
|
static |
Initialize StringTable.
This is called at program start to initialize the StringTable global.
|
static |
Destroy the StringTable
This is called at program end to destroy the StringTable global.
|
static |
Hash a string into a U32.
|
static |
Hash a string of given length into a U32.
StringTableEntry insert | ( | const char * | string, |
bool | caseSens = false |
||
) |
Get a pointer from the string table, adding the string to the table if it was not already present.
string | String to check in the table (and add). |
caseSens | Determines whether case matters. |
StringTableEntry insertn | ( | const char * | string, |
S32 | len, | ||
bool | caseSens = false |
||
) |
Get a pointer from the string table, adding the string to the table if it was not already present.
string | String to check in the table (and add). |
len | Length of the string in bytes. |
caseSens | Determines whether case matters. |
StringTableEntry lookup | ( | const char * | string, |
bool | caseSens = false |
||
) |
Get a pointer from the string table, NOT adding the string to the table if it was not already present.
string | String to check in the table (but not add). |
caseSens | Determines whether case matters. |
StringTableEntry lookupn | ( | const char * | string, |
S32 | len, | ||
bool | caseSens = false |
||
) |
Get a pointer from the string table, NOT adding the string to the table if it was not already present.
string | String to check in the table (but not add). |
len | Length of string in bytes. |
caseSens | Determines whether case matters. |
void resize | ( | const U32 | newSize | ) |
Resize the StringTable to be able to hold newSize items. This is called automatically by the StringTable when the table is full past a certain threshhold.
newSize | Number of new items to allocate space for. |
|
staticprotected |
|
static |
Empty string.