⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uiter.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
📖 第 1 页 / 共 2 页
字号:
     * (protected) Start index or similar.     * Not used by caller.     * @stable ICU 2.1     */    int32_t start;    /**     * (protected) Current index or similar.     * Not used by caller.     * @stable ICU 2.1     */    int32_t index;    /**     * (protected) Limit index or similar.     * Not used by caller.     * @stable ICU 2.1     */    int32_t limit;    /**     * (protected) Used by UTF-8 iterators and possibly others.     * @stable ICU 2.1     */    int32_t reservedField;    /**     * (public) Returns the current position or the     * start or limit index of the iteration range.     *     * @see UCharIteratorGetIndex     * @stable ICU 2.1     */    UCharIteratorGetIndex *getIndex;    /**     * (public) Moves the current position relative to the start or limit of the     * iteration range, or relative to the current position itself.     * The movement is expressed in numbers of code units forward     * or backward by specifying a positive or negative delta.     *     * @see UCharIteratorMove     * @stable ICU 2.1     */    UCharIteratorMove *move;    /**     * (public) Check if current() and next() can still     * return another code unit.     *     * @see UCharIteratorHasNext     * @stable ICU 2.1     */    UCharIteratorHasNext *hasNext;    /**     * (public) Check if previous() can still return another code unit.     *     * @see UCharIteratorHasPrevious     * @stable ICU 2.1     */    UCharIteratorHasPrevious *hasPrevious;    /**     * (public) Return the code unit at the current position,     * or U_SENTINEL if there is none (index is at the limit).     *     * @see UCharIteratorCurrent     * @stable ICU 2.1     */    UCharIteratorCurrent *current;    /**     * (public) Return the code unit at the current index and increment     * the index (post-increment, like s[i++]),     * or return U_SENTINEL if there is none (index is at the limit).     *     * @see UCharIteratorNext     * @stable ICU 2.1     */    UCharIteratorNext *next;    /**     * (public) Decrement the index and return the code unit from there     * (pre-decrement, like s[--i]),     * or return U_SENTINEL if there is none (index is at the start).     *     * @see UCharIteratorPrevious     * @stable ICU 2.1     */    UCharIteratorPrevious *previous;    /**     * (public) Reserved for future use. Currently NULL.     *     * @see UCharIteratorReserved     * @stable ICU 2.1     */    UCharIteratorReserved *reservedFn;    /**     * (public) Return the state of the iterator, to be restored later with setState().     * This function pointer is NULL if the iterator does not implement it.     *     * @see UCharIteratorGet     * @stable ICU 2.6     */    UCharIteratorGetState *getState;    /**     * (public) Restore the iterator state from the state word from a call     * to getState().     * This function pointer is NULL if the iterator does not implement it.     *     * @see UCharIteratorSet     * @stable ICU 2.6     */    UCharIteratorSetState *setState;};/** * Helper function for UCharIterator to get the code point * at the current index. * * Return the code point that includes the code unit at the current position, * or U_SENTINEL if there is none (index is at the limit). * If the current code unit is a lead or trail surrogate, * then the following or preceding surrogate is used to form * the code point value. * * @param iter the UCharIterator structure ("this pointer") * @return the current code point * * @see UCharIterator * @see U16_GET * @see UnicodeString::char32At() * @stable ICU 2.1 */U_STABLE UChar32 U_EXPORT2uiter_current32(UCharIterator *iter);/** * Helper function for UCharIterator to get the next code point. * * Return the code point at the current index and increment * the index (post-increment, like s[i++]), * or return U_SENTINEL if there is none (index is at the limit). * * @param iter the UCharIterator structure ("this pointer") * @return the current code point (and post-increment the current index) * * @see UCharIterator * @see U16_NEXT * @stable ICU 2.1 */U_STABLE UChar32 U_EXPORT2uiter_next32(UCharIterator *iter);/** * Helper function for UCharIterator to get the previous code point. * * Decrement the index and return the code point from there * (pre-decrement, like s[--i]), * or return U_SENTINEL if there is none (index is at the start). * * @param iter the UCharIterator structure ("this pointer") * @return the previous code point (after pre-decrementing the current index) * * @see UCharIterator * @see U16_PREV * @stable ICU 2.1 */U_STABLE UChar32 U_EXPORT2uiter_previous32(UCharIterator *iter);/** * Get the "state" of the iterator in the form of a single 32-bit word. * This is a convenience function that calls iter->getState(iter) * if iter->getState is not NULL; * if it is NULL or any other error occurs, then UITER_NO_STATE is returned. * * Some UCharIterator implementations may not be able to return * a valid state for each position, in which case they return UITER_NO_STATE instead. * This will be clearly documented for each such iterator (none of the public ones here). * * @param iter the UCharIterator structure ("this pointer") * @return the state word * * @see UCharIterator * @see UCharIteratorGetState * @see UITER_NO_STATE * @stable ICU 2.6 */U_STABLE uint32_t U_EXPORT2uiter_getState(const UCharIterator *iter);/** * Restore the "state" of the iterator using a state word from a getState() call. * This is a convenience function that calls iter->setState(iter, state, pErrorCode) * if iter->setState is not NULL; if it is NULL, then U_UNSUPPORTED_ERROR is set. * * @param iter the UCharIterator structure ("this pointer") * @param state the state word from a getState() call *              on a same-type, same-string iterator * @param pErrorCode Must be a valid pointer to an error code value, *                   which must not indicate a failure before the function call. * * @see UCharIterator * @see UCharIteratorSetState * @stable ICU 2.6 */U_STABLE void U_EXPORT2uiter_setState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);/** * Set up a UCharIterator to iterate over a string. * * Sets the UCharIterator function pointers for iteration over the string s * with iteration boundaries start=index=0 and length=limit=string length. * The "provider" may set the start, index, and limit values at any time * within the range 0..length. * The length field will be ignored. * * The string pointer s is set into UCharIterator.context without copying * or reallocating the string contents. * * getState() simply returns the current index. * move() will always return the final index. * * @param iter UCharIterator structure to be set for iteration * @param s String to iterate over * @param length Length of s, or -1 if NUL-terminated * * @see UCharIterator * @stable ICU 2.1 */U_STABLE void U_EXPORT2uiter_setString(UCharIterator *iter, const UChar *s, int32_t length);/** * Set up a UCharIterator to iterate over a UTF-16BE string * (byte vector with a big-endian pair of bytes per UChar). * * Everything works just like with a normal UChar iterator (uiter_setString), * except that UChars are assembled from byte pairs, * and that the length argument here indicates an even number of bytes. * * getState() simply returns the current index. * move() will always return the final index. * * @param iter UCharIterator structure to be set for iteration * @param s UTF-16BE string to iterate over * @param length Length of s as an even number of bytes, or -1 if NUL-terminated *               (NUL means pair of 0 bytes at even index from s) * * @see UCharIterator * @see uiter_setString * @stable ICU 2.6 */U_STABLE void U_EXPORT2uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length);/** * Set up a UCharIterator to iterate over a UTF-8 string. * * Sets the UCharIterator function pointers for iteration over the UTF-8 string s * with UTF-8 iteration boundaries 0 and length. * The implementation counts the UTF-16 index on the fly and * lazily evaluates the UTF-16 length of the text. * * The start field is used as the UTF-8 offset, the limit field as the UTF-8 length. * When the reservedField is not 0, then it contains a supplementary code point * and the UTF-16 index is between the two corresponding surrogates. * At that point, the UTF-8 index is behind that code point. * * The UTF-8 string pointer s is set into UCharIterator.context without copying * or reallocating the string contents. * * getState() returns a state value consisting of * - the current UTF-8 source byte index (bits 31..1) * - a flag (bit 0) that indicates whether the UChar position is in the middle *   of a surrogate pair *   (from a 4-byte UTF-8 sequence for the corresponding supplementary code point) * * getState() cannot also encode the UTF-16 index in the state value. * move(relative to limit or length), or * move(relative to current) after setState(), may return UITER_UNKNOWN_INDEX. * * @param iter UCharIterator structure to be set for iteration * @param s UTF-8 string to iterate over * @param length Length of s in bytes, or -1 if NUL-terminated * * @see UCharIterator * @stable ICU 2.6 */U_STABLE void U_EXPORT2uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);#ifdef XP_CPLUSPLUS/** * Set up a UCharIterator to wrap around a C++ CharacterIterator. * * Sets the UCharIterator function pointers for iteration using the * CharacterIterator charIter. * * The CharacterIterator pointer charIter is set into UCharIterator.context * without copying or cloning the CharacterIterator object. * The other "protected" UCharIterator fields are set to 0 and will be ignored. * The iteration index and boundaries are controlled by the CharacterIterator. * * getState() simply returns the current index. * move() will always return the final index. * * @param iter UCharIterator structure to be set for iteration * @param charIter CharacterIterator to wrap * * @see UCharIterator * @stable ICU 2.1 */U_STABLE void U_EXPORT2uiter_setCharacterIterator(UCharIterator *iter, CharacterIterator *charIter);/** * Set up a UCharIterator to iterate over a C++ Replaceable. * * Sets the UCharIterator function pointers for iteration over the * Replaceable rep with iteration boundaries start=index=0 and * length=limit=rep->length(). * The "provider" may set the start, index, and limit values at any time * within the range 0..length=rep->length(). * The length field will be ignored. * * The Replaceable pointer rep is set into UCharIterator.context without copying * or cloning/reallocating the Replaceable object. * * getState() simply returns the current index. * move() will always return the final index. * * @param iter UCharIterator structure to be set for iteration * @param rep Replaceable to iterate over * * @see UCharIterator * @stable ICU 2.1 */U_STABLE void U_EXPORT2uiter_setReplaceable(UCharIterator *iter, const Replaceable *rep);#endifU_CDECL_END#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -