uiter.h

Go to the documentation of this file.
00001 /*
00002 *******************************************************************************
00003 *
00004 *   Copyright (C) 2002-2005, International Business Machines
00005 *   Corporation and others.  All Rights Reserved.
00006 *
00007 *******************************************************************************
00008 *   file name:  uiter.h
00009 *   encoding:   US-ASCII
00010 *   tab size:   8 (not used)
00011 *   indentation:4
00012 *
00013 *   created on: 2002jan18
00014 *   created by: Markus W. Scherer
00015 */
00016 
00017 #ifndef __UITER_H__
00018 #define __UITER_H__
00019 
00027 #include "unicode/utypes.h"
00028 
00029 #ifdef XP_CPLUSPLUS
00030     U_NAMESPACE_BEGIN
00031 
00032     class CharacterIterator;
00033     class Replaceable;
00034 
00035     U_NAMESPACE_END
00036 #endif
00037 
00038 U_CDECL_BEGIN
00039 
00040 struct UCharIterator;
00041 typedef struct UCharIterator UCharIterator; 
00049 typedef enum UCharIteratorOrigin {
00050     UITER_START, UITER_CURRENT, UITER_LIMIT, UITER_ZERO, UITER_LENGTH
00051 } UCharIteratorOrigin;
00052 
00054 enum {
00069     UITER_UNKNOWN_INDEX=-2
00070 };
00071 
00072 
00084 #define UITER_NO_STATE ((uint32_t)0xffffffff)
00085 
00104 typedef int32_t U_CALLCONV
00105 UCharIteratorGetIndex(UCharIterator *iter, UCharIteratorOrigin origin);
00106 
00141 typedef int32_t U_CALLCONV
00142 UCharIteratorMove(UCharIterator *iter, int32_t delta, UCharIteratorOrigin origin);
00143 
00156 typedef UBool U_CALLCONV
00157 UCharIteratorHasNext(UCharIterator *iter);
00158 
00170 typedef UBool U_CALLCONV
00171 UCharIteratorHasPrevious(UCharIterator *iter);
00172  
00185 typedef UChar32 U_CALLCONV
00186 UCharIteratorCurrent(UCharIterator *iter);
00187 
00201 typedef UChar32 U_CALLCONV
00202 UCharIteratorNext(UCharIterator *iter);
00203 
00217 typedef UChar32 U_CALLCONV
00218 UCharIteratorPrevious(UCharIterator *iter);
00219 
00231 typedef int32_t U_CALLCONV
00232 UCharIteratorReserved(UCharIterator *iter, int32_t something);
00233 
00278 typedef uint32_t U_CALLCONV
00279 UCharIteratorGetState(const UCharIterator *iter);
00280 
00306 typedef void U_CALLCONV
00307 UCharIteratorSetState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
00308 
00309 
00339 struct UCharIterator {
00345     const void *context;
00346 
00352     int32_t length;
00353 
00359     int32_t start;
00360 
00366     int32_t index;
00367 
00373     int32_t limit;
00374 
00379     int32_t reservedField;
00380 
00388     UCharIteratorGetIndex *getIndex;
00389 
00399     UCharIteratorMove *move;
00400 
00408     UCharIteratorHasNext *hasNext;
00409 
00416     UCharIteratorHasPrevious *hasPrevious;
00417 
00425     UCharIteratorCurrent *current;
00426 
00435     UCharIteratorNext *next;
00436 
00445     UCharIteratorPrevious *previous;
00446 
00453     UCharIteratorReserved *reservedFn;
00454 
00462     UCharIteratorGetState *getState;
00463 
00472     UCharIteratorSetState *setState;
00473 };
00474 
00493 U_STABLE UChar32 U_EXPORT2
00494 uiter_current32(UCharIterator *iter);
00495 
00510 U_STABLE UChar32 U_EXPORT2
00511 uiter_next32(UCharIterator *iter);
00512 
00527 U_STABLE UChar32 U_EXPORT2
00528 uiter_previous32(UCharIterator *iter);
00529 
00548 U_STABLE uint32_t U_EXPORT2
00549 uiter_getState(const UCharIterator *iter);
00550 
00566 U_STABLE void U_EXPORT2
00567 uiter_setState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
00568 
00591 U_STABLE void U_EXPORT2
00592 uiter_setString(UCharIterator *iter, const UChar *s, int32_t length);
00593 
00614 U_STABLE void U_EXPORT2
00615 uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length);
00616 
00650 U_STABLE void U_EXPORT2
00651 uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);
00652 
00653 #ifdef XP_CPLUSPLUS
00654 
00675 U_STABLE void U_EXPORT2
00676 uiter_setCharacterIterator(UCharIterator *iter, CharacterIterator *charIter);
00677 
00700 U_STABLE void U_EXPORT2
00701 uiter_setReplaceable(UCharIterator *iter, const Replaceable *rep);
00702 
00703 #endif
00704 
00705 U_CDECL_END
00706 
00707 #endif

Generated on Mon Aug 13 07:17:24 2007 for ICU 3.6 by  doxygen 1.5.2