From 5b650d2d0c96545c5a276a1b819d0f5baebf8204 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Fri, 14 Jul 2006 07:55:57 +0000 Subject: Changed some stuff, not sure what all, minor stuff. --- src/hashfunctionstring.cpp | 6 ++---- src/serializer.h | 6 ++++++ src/serializerbinary.cpp | 2 +- src/serializerbinary.h | 2 +- src/staticstring.cpp | 27 +++++++++++++++++++++++++++ src/staticstring.h | 4 ++++ 6 files changed, 41 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/hashfunctionstring.cpp b/src/hashfunctionstring.cpp index 8ea9f57..6ce7bb3 100644 --- a/src/hashfunctionstring.cpp +++ b/src/hashfunctionstring.cpp @@ -10,12 +10,10 @@ HashFunctionString::~HashFunctionString() unsigned long int HashFunctionString::hash( const void *id ) { - const char *str = (const char *)id; unsigned long int nPos = 0; - for( int j = 0; str[j] != '\0'; j++ ) + for( const char *s = (const char *)id; *s; s++ ) { - nPos = str[j] + (nPos << 6) + (nPos << 16) - nPos; -// nPos += nPos<<16|(((unsigned long int)str[j])<<((j*7)%24)); + nPos = *s + (nPos << 6) + (nPos << 16) - nPos; } return nPos; } diff --git a/src/serializer.h b/src/serializer.h index 274d8de..334c3c7 100644 --- a/src/serializer.h +++ b/src/serializer.h @@ -12,6 +12,12 @@ private: bool bLoading; public: bool isLoading(); + + enum + { + load = true, + save = false + }; Serializer(bool bLoading); virtual ~Serializer(); diff --git a/src/serializerbinary.cpp b/src/serializerbinary.cpp index f2d8371..d7143ab 100644 --- a/src/serializerbinary.cpp +++ b/src/serializerbinary.cpp @@ -8,7 +8,7 @@ SerializerBinary::SerializerBinary(FILE *fhFile, bool bLoading): { } -SerializerBinary::SerializerBinary(char *sFileName, bool bLoading): +SerializerBinary::SerializerBinary(const char *sFileName, bool bLoading): Serializer(bLoading), bCloseFile(true) { diff --git a/src/serializerbinary.h b/src/serializerbinary.h index fe83ad5..2930077 100644 --- a/src/serializerbinary.h +++ b/src/serializerbinary.h @@ -8,7 +8,7 @@ class SerializerBinary : public Serializer { public: SerializerBinary(FILE *fhFile, bool bLoading); - SerializerBinary(char *sFileName, bool bLoading); + SerializerBinary(const char *sFileName, bool bLoading); virtual ~SerializerBinary(); virtual void close(); diff --git a/src/staticstring.cpp b/src/staticstring.cpp index 24b9ecb..fa61e62 100644 --- a/src/staticstring.cpp +++ b/src/staticstring.cpp @@ -198,3 +198,30 @@ void StaticString::serialize( Serializer &ar ) } } +bool StaticString::operator==( const char *str ) +{ + const char *a = str, *b = lpStr; + for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return true; + return false; +} + +bool StaticString::operator==( StaticString &str ) +{ + const char *a = str.lpStr, *b = lpStr; + for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return true; + return false; +} + +bool StaticString::operator!=( const char *str ) +{ + const char *a = str, *b = lpStr; + for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false; + return true; +} + +bool StaticString::operator!=( StaticString &str ) +{ + const char *a = str.lpStr, *b = lpStr; + for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false; + return true; +} diff --git a/src/staticstring.h b/src/staticstring.h index 7ffa21f..732e860 100644 --- a/src/staticstring.h +++ b/src/staticstring.h @@ -38,6 +38,10 @@ public: operator int(); char *operator+( int nAmnt ); char *operator-( int nAmnt ); + bool operator==( const char *str ); + bool operator==( StaticString &str ); + bool operator!=( const char *str ); + bool operator!=( StaticString &str ); void clear(); -- cgit v1.2.3