Index: icu46/source/test/intltest/sfwdchit.cpp |
=================================================================== |
--- icu46/source/test/intltest/sfwdchit.cpp (revision 0) |
+++ icu46/source/test/intltest/sfwdchit.cpp (revision 0) |
@@ -0,0 +1,120 @@ |
+/******************************************************************** |
+ * COPYRIGHT: |
+ * Copyright (c) 1997-2003, International Business Machines Corporation and |
+ * others. All Rights Reserved. |
+ ********************************************************************/ |
+/* file name: sfwdchit.cpp |
+* encoding: US-ASCII |
+* tab size: 8 (not used) |
+* indentation:4 |
+*/ |
+ |
+#include "sfwdchit.h" |
+#include "unicode/ustring.h" |
+#include "unicode/unistr.h" |
+#include "uhash.h" |
+#include "cmemory.h" |
+ |
+// A hash code of kInvalidHashCode indicates that the has code needs |
+// to be computed. A hash code of kEmptyHashCode is used for empty keys |
+// and for any key whose computed hash code is kInvalidHashCode. |
+const int32_t SimpleFwdCharIterator::kInvalidHashCode = 0; |
+const int32_t SimpleFwdCharIterator::kEmptyHashCode = 1; |
+ |
+#if 0 // not used |
+SimpleFwdCharIterator::SimpleFwdCharIterator(const UnicodeString& s) { |
+ |
+ fHashCode = kInvalidHashCode; |
+ fLen = s.length(); |
+ fStart = new UChar[fLen]; |
+ if(fStart == NULL) { |
+ fBogus = TRUE; |
+ } else { |
+ fEnd = fStart+fLen; |
+ fCurrent = fStart; |
+ fBogus = FALSE; |
+ s.extract(0, fLen, fStart); |
+ } |
+ |
+} |
+#endif |
+ |
+SimpleFwdCharIterator::SimpleFwdCharIterator(UChar *s, int32_t len, UBool adopt) { |
+ |
+ fHashCode = kInvalidHashCode; |
+ |
+ fLen = len==-1 ? u_strlen(s) : len; |
+ |
+ if(adopt == FALSE) { |
+ fStart = new UChar[fLen]; |
+ if(fStart == NULL) { |
+ fBogus = TRUE; |
+ } else { |
+ uprv_memcpy(fStart, s, fLen); |
+ fEnd = fStart+fLen; |
+ fCurrent = fStart; |
+ fBogus = FALSE; |
+ } |
+ } else { // adopt = TRUE |
+ fCurrent = fStart = s; |
+ fEnd = fStart + fLen; |
+ fBogus = FALSE; |
+ } |
+ |
+} |
+ |
+SimpleFwdCharIterator::~SimpleFwdCharIterator() { |
+ delete[] fStart; |
+} |
+ |
+#if 0 // not used |
+UBool SimpleFwdCharIterator::operator==(const ForwardCharacterIterator& that) const { |
+ if(this == &that) { |
+ return TRUE; |
+ } |
+/* |
+ if(that->fHashCode != kInvalidHashCode && this->fHashCode = that->fHashCode) { |
+ return TRUE; |
+ } |
+ |
+ if(this->fStart == that->fStart) { |
+ return TRUE; |
+ } |
+ |
+ if(this->fLen == that->fLen && uprv_memcmp(this->fStart, that->fStart, this->fLen) { |
+ return TRUE; |
+ } |
+*/ |
+ return FALSE; |
+} |
+#endif |
+ |
+int32_t SimpleFwdCharIterator::hashCode(void) const { |
+ if (fHashCode == kInvalidHashCode) |
+ { |
+ UHashTok key; |
+ key.pointer = fStart; |
+ ((SimpleFwdCharIterator *)this)->fHashCode = uhash_hashUChars(key); |
+ } |
+ return fHashCode; |
+} |
+ |
+UClassID SimpleFwdCharIterator::getDynamicClassID(void) const { |
+ return NULL; |
+} |
+ |
+UChar SimpleFwdCharIterator::nextPostInc(void) { |
+ if(fCurrent == fEnd) { |
+ return ForwardCharacterIterator::DONE; |
+ } else { |
+ return *(fCurrent)++; |
+ } |
+} |
+ |
+UChar32 SimpleFwdCharIterator::next32PostInc(void) { |
+ return ForwardCharacterIterator::DONE; |
+} |
+ |
+UBool SimpleFwdCharIterator::hasNext() { |
+ return fCurrent < fEnd; |
+} |
Property changes on: icu46/source/test/intltest/sfwdchit.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |