You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: A registry of strings and associated ints |
|
// |
|
// $Workfile: $ |
|
// $Date: $ |
|
// |
|
//----------------------------------------------------------------------------- |
|
// $Log: $ |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef STRINGREGISTRY_H |
|
#define STRINGREGISTRY_H |
|
#pragma once |
|
|
|
struct StringTable_t; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Just a convenience/legacy wrapper for CUtlDict<> . |
|
//----------------------------------------------------------------------------- |
|
class CStringRegistry |
|
{ |
|
private: |
|
StringTable_t *m_pStringList; |
|
|
|
public: |
|
// returns a key for a given string |
|
unsigned short AddString(const char *stringText, int stringID); |
|
|
|
// This is optimized. It will do 2 O(logN) searches |
|
// Only one of the searches needs to compare strings, the other compares symbols (ints) |
|
// returns -1 if the string is not present in the registry. |
|
int GetStringID(const char *stringText); |
|
|
|
// This is unoptimized. It will linearly search (but only compares ints, not strings) |
|
const char *GetStringText(int stringID); |
|
|
|
// This is O(1). It will not search. key MUST be a value that was returned by AddString |
|
const char *GetStringForKey(unsigned short key); |
|
// This is O(1). It will not search. key MUST be a value that was returned by AddString |
|
int GetIDForKey(unsigned short key); |
|
|
|
void ClearStrings(void); |
|
|
|
|
|
// Iterate all the keys. |
|
unsigned short First() const; |
|
unsigned short Next( unsigned short key ) const; |
|
unsigned short InvalidIndex() const; |
|
|
|
~CStringRegistry(void); // Need to free allocated memory |
|
CStringRegistry(void); |
|
}; |
|
|
|
#endif // STRINGREGISTRY_H
|
|
|