| 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
|
|
|
|
|