Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
CStrIntern Class Reference

Interned 8-bit strings. More...

#include <CStrIntern.h>

Public Member Functions

 CStrIntern ()
 
 CStrIntern (const char *str)
 
 CStrIntern (const std::string &str)
 
u32 GetHash () const
 Returns cached FNV1-A hash of the string. More...
 
const char * c_str () const
 Returns null-terminated string. More...
 
size_t length () const
 Returns length of string in bytes. More...
 
const std::string & string () const
 Returns as std::string. More...
 
bool operator== (const CStrIntern &b) const
 String equality. More...
 
bool operator< (const CStrIntern &b) const
 Compare with some arbitrary total order. More...
 

Private Attributes

CStrInternInternalsm
 

Detailed Description

Interned 8-bit strings.

Each instance with the same string content is a pointer to the same piece of memory, allowing very fast string comparisons.

Since a CStrIntern is just a dumb pointer, copying is very fast, and pass-by-value should be preferred over pass-by-reference.

Memory allocated for strings will never be freed, so don't use this for unbounded numbers of strings (e.g. text rendered by gameplay scripts) - it's intended for a small number of short frequently-used strings.

Not thread-safe - only allocate these strings from the main thread.

Definition at line 37 of file CStrIntern.h.

Constructor & Destructor Documentation

CStrIntern::CStrIntern ( )

Definition at line 120 of file CStrIntern.cpp.

CStrIntern::CStrIntern ( const char *  str)
explicit

Definition at line 125 of file CStrIntern.cpp.

CStrIntern::CStrIntern ( const std::string &  str)
explicit

Definition at line 130 of file CStrIntern.cpp.

Member Function Documentation

const char * CStrIntern::c_str ( ) const

Returns null-terminated string.

Definition at line 140 of file CStrIntern.cpp.

u32 CStrIntern::GetHash ( ) const

Returns cached FNV1-A hash of the string.

Definition at line 135 of file CStrIntern.cpp.

size_t CStrIntern::length ( ) const

Returns length of string in bytes.

Definition at line 145 of file CStrIntern.cpp.

bool CStrIntern::operator< ( const CStrIntern b) const
inline

Compare with some arbitrary total order.

(In particular, this is not alphabetic order, and is not consistent between runs of the game.)

Definition at line 77 of file CStrIntern.h.

bool CStrIntern::operator== ( const CStrIntern b) const
inline

String equality.

Definition at line 67 of file CStrIntern.h.

const std::string & CStrIntern::string ( ) const

Returns as std::string.

Definition at line 150 of file CStrIntern.cpp.

Member Data Documentation

CStrInternInternals* CStrIntern::m
private

Definition at line 83 of file CStrIntern.h.


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