| Index: icu51/source/common/uenumimp.h
|
| ===================================================================
|
| --- icu51/source/common/uenumimp.h (revision 0)
|
| +++ icu51/source/common/uenumimp.h (revision 0)
|
| @@ -0,0 +1,153 @@
|
| +/*
|
| +*******************************************************************************
|
| +*
|
| +* Copyright (C) 2002-2006, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +*
|
| +*******************************************************************************
|
| +* file name: uenumimp.h
|
| +* encoding: US-ASCII
|
| +* tab size: 8 (not used)
|
| +* indentation:2
|
| +*
|
| +* created on: 2002jul08
|
| +* created by: Vladimir Weinstein
|
| +*/
|
| +
|
| +#ifndef __UENUMIMP_H
|
| +#define __UENUMIMP_H
|
| +
|
| +#include "unicode/uenum.h"
|
| +
|
| +U_CDECL_BEGIN
|
| +
|
| +/**
|
| + * following are the type declarations for
|
| + * implementations of APIs. If any of these
|
| + * functions are NULL, U_UNSUPPORTED_ERROR
|
| + * is returned. If close is NULL, the enumeration
|
| + * object is going to be released.
|
| + * Initial error checking is done in the body
|
| + * of API function, so the implementations
|
| + * need not to check the initial error condition.
|
| + */
|
| +
|
| +/**
|
| + * Function type declaration for uenum_close().
|
| + *
|
| + * This function should cleanup the enumerator object
|
| + *
|
| + * @param en enumeration to be closed
|
| + */
|
| +typedef void U_CALLCONV
|
| +UEnumClose(UEnumeration *en);
|
| +
|
| +/**
|
| + * Function type declaration for uenum_count().
|
| + *
|
| + * This function should count the number of elements
|
| + * in this enumeration
|
| + *
|
| + * @param en enumeration to be counted
|
| + * @param status pointer to UErrorCode variable
|
| + * @return number of elements in enumeration
|
| + */
|
| +typedef int32_t U_CALLCONV
|
| +UEnumCount(UEnumeration *en, UErrorCode *status);
|
| +
|
| +/**
|
| + * Function type declaration for uenum_unext().
|
| + *
|
| + * This function returns the next element as a UChar *,
|
| + * or NULL after all elements haven been enumerated.
|
| + *
|
| + * @param en enumeration
|
| + * @param resultLength pointer to result length
|
| + * @param status pointer to UErrorCode variable
|
| + * @return next element as UChar *,
|
| + * or NULL after all elements haven been enumerated
|
| + */
|
| +typedef const UChar* U_CALLCONV
|
| +UEnumUNext(UEnumeration* en,
|
| + int32_t* resultLength,
|
| + UErrorCode* status);
|
| +
|
| +/**
|
| + * Function type declaration for uenum_next().
|
| + *
|
| + * This function returns the next element as a char *,
|
| + * or NULL after all elements haven been enumerated.
|
| + *
|
| + * @param en enumeration
|
| + * @param resultLength pointer to result length
|
| + * @param status pointer to UErrorCode variable
|
| + * @return next element as char *,
|
| + * or NULL after all elements haven been enumerated
|
| + */
|
| +typedef const char* U_CALLCONV
|
| +UEnumNext(UEnumeration* en,
|
| + int32_t* resultLength,
|
| + UErrorCode* status);
|
| +
|
| +/**
|
| + * Function type declaration for uenum_reset().
|
| + *
|
| + * This function should reset the enumeration
|
| + * object
|
| + *
|
| + * @param en enumeration
|
| + * @param status pointer to UErrorCode variable
|
| + */
|
| +typedef void U_CALLCONV
|
| +UEnumReset(UEnumeration* en,
|
| + UErrorCode* status);
|
| +
|
| +
|
| +struct UEnumeration {
|
| + /* baseContext. For the base class only. Don't touch! */
|
| + void *baseContext;
|
| +
|
| + /* context. Use it for what you need */
|
| + void *context;
|
| +
|
| + /**
|
| + * these are functions that will
|
| + * be used for APIs
|
| + */
|
| + /* called from uenum_close */
|
| + UEnumClose *close;
|
| + /* called from uenum_count */
|
| + UEnumCount *count;
|
| + /* called from uenum_unext */
|
| + UEnumUNext *uNext;
|
| + /* called from uenum_next */
|
| + UEnumNext *next;
|
| + /* called from uenum_reset */
|
| + UEnumReset *reset;
|
| +};
|
| +
|
| +U_CDECL_END
|
| +
|
| +/* This is the default implementation for uenum_unext().
|
| + * It automatically converts the char * string to UChar *.
|
| + * Don't call this directly. This is called internally by uenum_unext
|
| + * when a UEnumeration is defined with 'uNext' pointing to this
|
| + * function.
|
| + */
|
| +U_CAPI const UChar* U_EXPORT2
|
| +uenum_unextDefault(UEnumeration* en,
|
| + int32_t* resultLength,
|
| + UErrorCode* status);
|
| +
|
| +/* This is the default implementation for uenum_next().
|
| + * It automatically converts the UChar * string to char *.
|
| + * Don't call this directly. This is called internally by uenum_next
|
| + * when a UEnumeration is defined with 'next' pointing to this
|
| + * function.
|
| + */
|
| +U_CAPI const char* U_EXPORT2
|
| +uenum_nextDefault(UEnumeration* en,
|
| + int32_t* resultLength,
|
| + UErrorCode* status);
|
| +
|
| +#endif
|
|
|
| Property changes on: icu51/source/common/uenumimp.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|