diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hashfunctionstring.cpp | 6 | ||||
-rw-r--r-- | src/serializer.h | 6 | ||||
-rw-r--r-- | src/serializerbinary.cpp | 2 | ||||
-rw-r--r-- | src/serializerbinary.h | 2 | ||||
-rw-r--r-- | src/staticstring.cpp | 27 | ||||
-rw-r--r-- | src/staticstring.h | 4 |
6 files changed, 41 insertions, 6 deletions
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() | |||
10 | 10 | ||
11 | unsigned long int HashFunctionString::hash( const void *id ) | 11 | unsigned long int HashFunctionString::hash( const void *id ) |
12 | { | 12 | { |
13 | const char *str = (const char *)id; | ||
14 | unsigned long int nPos = 0; | 13 | unsigned long int nPos = 0; |
15 | for( int j = 0; str[j] != '\0'; j++ ) | 14 | for( const char *s = (const char *)id; *s; s++ ) |
16 | { | 15 | { |
17 | nPos = str[j] + (nPos << 6) + (nPos << 16) - nPos; | 16 | nPos = *s + (nPos << 6) + (nPos << 16) - nPos; |
18 | // nPos += nPos<<16|(((unsigned long int)str[j])<<((j*7)%24)); | ||
19 | } | 17 | } |
20 | return nPos; | 18 | return nPos; |
21 | } | 19 | } |
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: | |||
12 | bool bLoading; | 12 | bool bLoading; |
13 | public: | 13 | public: |
14 | bool isLoading(); | 14 | bool isLoading(); |
15 | |||
16 | enum | ||
17 | { | ||
18 | load = true, | ||
19 | save = false | ||
20 | }; | ||
15 | 21 | ||
16 | Serializer(bool bLoading); | 22 | Serializer(bool bLoading); |
17 | virtual ~Serializer(); | 23 | 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): | |||
8 | { | 8 | { |
9 | } | 9 | } |
10 | 10 | ||
11 | SerializerBinary::SerializerBinary(char *sFileName, bool bLoading): | 11 | SerializerBinary::SerializerBinary(const char *sFileName, bool bLoading): |
12 | Serializer(bLoading), | 12 | Serializer(bLoading), |
13 | bCloseFile(true) | 13 | bCloseFile(true) |
14 | { | 14 | { |
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 | |||
8 | { | 8 | { |
9 | public: | 9 | public: |
10 | SerializerBinary(FILE *fhFile, bool bLoading); | 10 | SerializerBinary(FILE *fhFile, bool bLoading); |
11 | SerializerBinary(char *sFileName, bool bLoading); | 11 | SerializerBinary(const char *sFileName, bool bLoading); |
12 | virtual ~SerializerBinary(); | 12 | virtual ~SerializerBinary(); |
13 | 13 | ||
14 | virtual void close(); | 14 | 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 ) | |||
198 | } | 198 | } |
199 | } | 199 | } |
200 | 200 | ||
201 | bool StaticString::operator==( const char *str ) | ||
202 | { | ||
203 | const char *a = str, *b = lpStr; | ||
204 | for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return true; | ||
205 | return false; | ||
206 | } | ||
207 | |||
208 | bool StaticString::operator==( StaticString &str ) | ||
209 | { | ||
210 | const char *a = str.lpStr, *b = lpStr; | ||
211 | for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return true; | ||
212 | return false; | ||
213 | } | ||
214 | |||
215 | bool StaticString::operator!=( const char *str ) | ||
216 | { | ||
217 | const char *a = str, *b = lpStr; | ||
218 | for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false; | ||
219 | return true; | ||
220 | } | ||
221 | |||
222 | bool StaticString::operator!=( StaticString &str ) | ||
223 | { | ||
224 | const char *a = str.lpStr, *b = lpStr; | ||
225 | for(; *a == *b; a++, b++ ) if( *a == '\0' && *b == '\0' ) return false; | ||
226 | return true; | ||
227 | } | ||
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: | |||
38 | operator int(); | 38 | operator int(); |
39 | char *operator+( int nAmnt ); | 39 | char *operator+( int nAmnt ); |
40 | char *operator-( int nAmnt ); | 40 | char *operator-( int nAmnt ); |
41 | bool operator==( const char *str ); | ||
42 | bool operator==( StaticString &str ); | ||
43 | bool operator!=( const char *str ); | ||
44 | bool operator!=( StaticString &str ); | ||
41 | 45 | ||
42 | void clear(); | 46 | void clear(); |
43 | 47 | ||