$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
 9a, Version 0
 9b, Version 0
 9c, Version 0
 9d, Version 0
 9e, Version 0
 9f, Version 0
 Addition Operator, SharedString
 addString, StringManager
 Assignment Operator, SharedString
 assignString, SharedString
 bytesUsed, StringManager
 c_str, SharedString
 ciEqual, SharedString
 Compiling the library
 Constructor, HashTable
 Constructor for C-style strings, SharedString
 Constructors/ Destructor, SharedString
 Copy constructor, SharedString
 countRefs, StringManager
 Debugging/ Informational, StringManager
 Default constructor, SharedString
 Design Notes
 Destructor, SharedString
 dumpTable, StringManager
 Equality Operator, SharedString
 Functions, HashTable
 getEntry, StringManager
 Known Issues
 length, SharedString
 Less-than Operator, SharedString
 Macros, SharedString
 numStrings, StringManager
 numStrings_, StringManager
 Operators, SharedString
 prepareEntry, StringManager
 Private Members
 Public methods, SharedString
 rehash, HashTable
 Shared String Library
 str, SharedString
 str_, SharedString
 unrefEntry, StringManager
 Using the library
 Version History
There are three addition operators, and three += operators.
const std::string * addString(const std::string &str)
Add a string reference to the manager.
There are three equality operators, overloaded for efficiency.
void assignString(const std::string &newstr)
Registers a string with the shared string table.
Associates a declared wrapper with a table manager.
virtual size_t bytesUsed() const = 0
Return how many bytes are used by the shared string manager.
inline const char * c_str() const
Returns a 0-terminated C-style string.
inline bool ciEqual(const SharedString &rhs) const
Test for case-insensitive equality against /rhs/.
Instructions for Unix and Windows environments.
Construct a new hash table implementation of the shared string manager.
Initializes shared string to /str/.
Initialize a shared string to the value of /rhs/.
size_t countRefs(const std::string &str) const
Count the number of times a string is referenced.
Declares a shared string wrapper.
Initializes shared string to /str/; defaults to the empty string if no string is specified.
void deleteString()
Unregisters the string with the manager.
void deleteString(const std::string &str)
Remove a string reference from the manager.
To do ...
Unregisters the string’s value with the manager.
virtual void dumpTable(std::ostream &os) const = 0
Dump the shared string table to an output stream.
There are three equality operators, overloaded for efficiency.
virtual const SharedStringEntry * getEntry(const std::string &str) const = 0
Get an entry in the shared string table.
Default number of buckets for a hash table.
Defines the interface to a hash function.
inline typename SharedString<ManagerWrapper>::size_type length() const
Get the length of the stored string.
There are three less-than operators, overloaded for efficiency.
size_t numStrings() const
Returns the number of unique strings in the table.
size_t numStrings_
Total number of (unique) strings
virtual SharedStringEntry * prepareEntry(const std::string &str) = 0
Get an entry in the table for a given string, creating if necessary.
void rehash(size_t newSize)
Resize the array of buckets, and rehash all table contents into the new buckets.
An implementation of shared strings in C++.
SharedStrings, once set up as defined in the Shared String Library documentation, can be used almost just like STL strings.
The StringManager manages a collection of SharedStringEntries.
inline const std::string & str() const
Returns a constant reference to the string’s value.
const std::string * str_
Points to the string in the manager.
The StringManager is the abstract table storing all the shared strings.
virtual bool unrefEntry(const std::string &str) = 0
Decrease the reference count of a shared string.
Covers usage and linking of the library.
Here is a list of the major changes/additions to each version of the shared string library.