mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-25 02:04:23 +00:00
New class StringPool. Removed the class var::identifier from its parent class, and renamed it "Identifier" - I've left a typedef in var to allow old code to still work, but I'll remove this at some point, so please switch to using the new classname directly. Jucer development.
This commit is contained in:
parent
ed97872c1a
commit
b46e94cffd
90 changed files with 2839 additions and 1733 deletions
82
src/text/juce_StringPool.h
Normal file
82
src/text/juce_StringPool.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
||||
Copyright 2004-10 by Raw Material Software Ltd.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
JUCE can be redistributed and/or modified under the terms of the GNU General
|
||||
Public License (Version 2), as published by the Free Software Foundation.
|
||||
A copy of the license is included in the JUCE distribution, or can be found
|
||||
online at www.gnu.org/licenses.
|
||||
|
||||
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
To release a closed-source product which uses JUCE, commercial licenses are
|
||||
available: visit www.rawmaterialsoftware.com/juce for more information.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
#ifndef __JUCE_STRINGPOOL_JUCEHEADER__
|
||||
#define __JUCE_STRINGPOOL_JUCEHEADER__
|
||||
|
||||
#include "juce_String.h"
|
||||
#include "../containers/juce_Array.h"
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A StringPool holds a set of shared strings, which reduces storage overheads and improves
|
||||
comparison speed when dealing with many duplicate strings.
|
||||
|
||||
When you add a string to a pool using getPooledString, it'll return a character
|
||||
array containing the same string. This array is owned by the pool, and the same array
|
||||
is returned every time a matching string is asked for. This means that it's trivial to
|
||||
compare two pooled strings for equality, as you can simply compare their pointers. It
|
||||
also cuts down on storage if you're using many copies of the same string.
|
||||
*/
|
||||
class JUCE_API StringPool
|
||||
{
|
||||
public:
|
||||
/** Creates an empty pool. */
|
||||
StringPool() throw();
|
||||
|
||||
/** Destructor */
|
||||
~StringPool();
|
||||
|
||||
/** Returns a pointer to a copy of the string that is passed in.
|
||||
|
||||
The pool will always return the same pointer when asked for a string that matches it.
|
||||
The pool will own all the pointers that it returns, deleting them when the pool itself
|
||||
is deleted.
|
||||
*/
|
||||
const juce_wchar* getPooledString (const String& original);
|
||||
|
||||
/** Returns a pointer to a copy of the string that is passed in.
|
||||
|
||||
The pool will always return the same pointer when asked for a string that matches it.
|
||||
The pool will own all the pointers that it returns, deleting them when the pool itself
|
||||
is deleted.
|
||||
*/
|
||||
const juce_wchar* getPooledString (const char* original);
|
||||
|
||||
/** Returns a pointer to a copy of the string that is passed in.
|
||||
|
||||
The pool will always return the same pointer when asked for a string that matches it.
|
||||
The pool will own all the pointers that it returns, deleting them when the pool itself
|
||||
is deleted.
|
||||
*/
|
||||
const juce_wchar* getPooledString (const juce_wchar* original);
|
||||
|
||||
private:
|
||||
Array <String> strings;
|
||||
};
|
||||
|
||||
|
||||
#endif // __JUCE_STRINGPOOL_JUCEHEADER__
|
||||
Loading…
Add table
Add a link
Reference in a new issue