CS::ScfStringSet< IF > Class Template Reference (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions
CS::ScfStringSet< IF > Class Template Reference

The string set is a collection of unique strings. More...

`#include <csutil/scfstrset.h>`

Inheritance diagram for CS::ScfStringSet< IF >:

List of all members.

## Public Member Functions
virtual void | Clear ()
| Remove all stored strings.
virtual bool | Contains (char const *s) const
| Check if the set contains a particular string.
virtual bool | Contains (StringIDType id) const
| Check if the set contains a string with a particular ID.
virtual bool | Delete (char const *s)
| Remove specified string.
virtual bool | Delete (StringIDType id)
| Remove a string with the specified ID.
virtual void | Empty ()
| Remove all stored strings.
Utility::StringSet< typename IF::TagType, true > ::GlobalIterator | GetIterator () const
| Return an iterator for the set which iterates over all strings.
virtual size_t | GetSize () const
| Get the number of elements in the hash.
virtual bool | IsEmpty () const
| Return true if the hash is empty.
virtual StringIDType | Request (const char *s)
| Request the numeric ID for the given string.
virtual const char * | Request (StringIDType id) const
| Request the string corresponding to the given ID.
| ScfStringSet (size_t size=23)
| Constructor.
virtual | ~ScfStringSet ()
| Destructor.

## Detailed Description

### template<typename IF>
class CS::ScfStringSet< IF >

The string set is a collection of unique strings.

Each string has an ID number. The most important operation is to request a string, which means to return the ID for the string, adding it to the collection if not already present. This is useful when you need to work with strings but want the performance characteristics of simple numeric comparisons. Rather than performing string comparisons, you instead compare the numeric string ID's.

Instances of the set are locked are for concurrent accesses.

Definition at line 48 of file scfstrset.h.

## Constructor & Destructor Documentation

template<typename IF >

CS::ScfStringSet< IF >::ScfStringSet | ( | size_t | size = `23` | ) | `[inline]`

Constructor.

Definition at line 57 of file scfstrset.h.

template<typename IF >

virtual CS::ScfStringSet< IF >::~ScfStringSet | ( |  | ) | `[inline, virtual]`

Destructor.

Definition at line 62 of file scfstrset.h.

## Member Function Documentation

template<typename IF >

virtual void CS::ScfStringSet< IF >::Clear | ( |  | ) | `[inline, virtual]`

Remove all stored strings.

Definition at line 120 of file scfstrset.h.

template<typename IF >

virtual bool CS::ScfStringSet< IF >::Contains | ( | char const * | s | ) | const`[inline, virtual]`

Check if the set contains a particular string.

Definition at line 85 of file scfstrset.h.

template<typename IF >

virtual bool CS::ScfStringSet< IF >::Contains | ( | StringIDType | id | ) | const`[inline, virtual]`

Check if the set contains a string with a particular ID.

Remarks:
  This is rigidly equivalent to `return Request(id) != NULL`, but more idomatic.

Definition at line 93 of file scfstrset.h.

template<typename IF >

virtual bool CS::ScfStringSet< IF >::Delete | ( | char const * | s | ) | `[inline, virtual]`

Remove specified string.

Returns:
  True if a matching string was in thet set; else false.

Definition at line 100 of file scfstrset.h.

template<typename IF >

virtual bool CS::ScfStringSet< IF >::Delete | ( | StringIDType | id | ) | `[inline, virtual]`

Remove a string with the specified ID.

Returns:
  True if a matching string was in thet set; else false.

Definition at line 107 of file scfstrset.h.

template<typename IF >

virtual void CS::ScfStringSet< IF >::Empty | ( |  | ) | `[inline, virtual]`

Remove all stored strings.

When new strings are registered again, new ID values will be used; the old ID's will not be re-used.

Definition at line 114 of file scfstrset.h.

template<typename IF >

Utility::StringSet<typename IF::TagType, true>::GlobalIterator CS::ScfStringSet< IF >::GetIterator | ( |  | ) | const`[inline]`

Return an iterator for the set which iterates over all strings.

Warning:
  Modifying the set while you have open iterators will result undefined behaviour.
  The iterator will not respect locking of the string set!

Definition at line 141 of file scfstrset.h.

template<typename IF >

virtual size_t CS::ScfStringSet< IF >::GetSize | ( |  | ) | const`[inline, virtual]`

Get the number of elements in the hash.

Definition at line 124 of file scfstrset.h.

template<typename IF >

virtual bool CS::ScfStringSet< IF >::IsEmpty | ( |  | ) | const`[inline, virtual]`

Return true if the hash is empty.

Remarks:
  Rigidly equivalent to `return GetSize() == 0`, but more idiomatic.

Definition at line 132 of file scfstrset.h.

template<typename IF >

virtual StringIDType CS::ScfStringSet< IF >::Request | ( | const char * | s | ) | `[inline, virtual]`

Request the numeric ID for the given string.

Returns:
  The ID of the string.

Remarks:
  Creates a new ID if the string is not yet present in the set, else returns the previously assigned ID.

Definition at line 71 of file scfstrset.h.

template<typename IF >

virtual const char* CS::ScfStringSet< IF >::Request | ( | StringIDType | id | ) | const`[inline, virtual]`

Request the string corresponding to the given ID.

Returns:
  Null if the string has not been requested (yet), else the string corresponding to the ID.

Definition at line 79 of file scfstrset.h.

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

- csutil/scfstrset.h