summaryrefslogtreecommitdiff
path: root/src/staticstring.cpp
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-07-26 21:58:35 +0000
committerMike Buland <eichlan@xagasoft.com>2006-07-26 21:58:35 +0000
commit76ed3c164662f4ee4c109bb2054c61c99ea86251 (patch)
tree301d4687f95a457304b0e796984b62fa89992718 /src/staticstring.cpp
parent579c3ac445043122b0a702bdb2542d9ea404b62e (diff)
downloadlibbu++-76ed3c164662f4ee4c109bb2054c61c99ea86251.tar.gz
libbu++-76ed3c164662f4ee4c109bb2054c61c99ea86251.tar.bz2
libbu++-76ed3c164662f4ee4c109bb2054c61c99ea86251.tar.xz
libbu++-76ed3c164662f4ee4c109bb2054c61c99ea86251.zip
Added the not-yet-working hash class. More thought must be done. This doesn't
actually change any existing code really just adds a new class that you can't use because it's commented out. I'll probably move it to a branch.
Diffstat (limited to 'src/staticstring.cpp')
-rw-r--r--src/staticstring.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/staticstring.cpp b/src/staticstring.cpp
index fa61e62..9eac92e 100644
--- a/src/staticstring.cpp
+++ b/src/staticstring.cpp
@@ -25,6 +25,13 @@ StaticString::StaticString( const char *lpNewStr, int nNewLen )
25 setString( lpNewStr, nNewLen ); 25 setString( lpNewStr, nNewLen );
26} 26}
27 27
28StaticString::StaticString( const char *lpNewStr )
29{
30 lpStr = NULL;
31 nLen = 0;
32 setString( lpNewStr, -1 );
33}
34
28StaticString::StaticString( StaticString &xSrcStr, int nNewLen ) 35StaticString::StaticString( StaticString &xSrcStr, int nNewLen )
29{ 36{
30 lpStr = NULL; 37 lpStr = NULL;
@@ -32,6 +39,13 @@ StaticString::StaticString( StaticString &xSrcStr, int nNewLen )
32 setString( xSrcStr, nNewLen ); 39 setString( xSrcStr, nNewLen );
33} 40}
34 41
42StaticString::StaticString( StaticString &xSrcStr )
43{
44 lpStr = NULL;
45 nLen = 0;
46 setString( xSrcStr, -1 );
47}
48
35StaticString::~StaticString() 49StaticString::~StaticString()
36{ 50{
37 if( lpStr != NULL ) delete[] lpStr; 51 if( lpStr != NULL ) delete[] lpStr;
@@ -225,3 +239,14 @@ bool StaticString::operator!=( StaticString &str )
225 for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false; 239 for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false;
226 return true; 240 return true;
227} 241}
242
243unsigned long int StaticString::getHashCode()
244{
245 unsigned long int nPos = nLen;
246 for( const char *s = (const char *)lpStr; *s; s++ )
247 {
248 nPos = *s + (nPos << 6) + (nPos << 16) - nPos;
249 }
250 return nPos;
251}
252