ICU 73.2  73.2
ulistformatter.h
Go to the documentation of this file.
00001 // © 2016 and later: Unicode, Inc. and others.
00002 // License & terms of use: http://www.unicode.org/copyright.html
00003 /*
00004 *****************************************************************************************
00005 * Copyright (C) 2015-2016, International Business Machines
00006 * Corporation and others. All Rights Reserved.
00007 *****************************************************************************************
00008 */
00009 
00010 #ifndef ULISTFORMATTER_H
00011 #define ULISTFORMATTER_H
00012 
00013 #include "unicode/utypes.h"
00014 
00015 #if !UCONFIG_NO_FORMATTING
00016 
00017 #include "unicode/uformattedvalue.h"
00018 
00019 #if U_SHOW_CPLUSPLUS_API
00020 #include "unicode/localpointer.h"
00021 #endif   // U_SHOW_CPLUSPLUS_API
00022 
00037 struct UListFormatter;
00038 typedef struct UListFormatter UListFormatter;  
00040 struct UFormattedList;
00045 typedef struct UFormattedList UFormattedList;
00046 
00052 typedef enum UListFormatterField {
00057     ULISTFMT_LITERAL_FIELD,
00062     ULISTFMT_ELEMENT_FIELD
00063 } UListFormatterField;
00064 
00070 typedef enum UListFormatterType {
00076     ULISTFMT_TYPE_AND,
00077 
00084     ULISTFMT_TYPE_OR,
00085 
00091     ULISTFMT_TYPE_UNITS
00092 } UListFormatterType;
00093 
00099 typedef enum UListFormatterWidth {
00105     ULISTFMT_WIDTH_WIDE,
00106 
00111     ULISTFMT_WIDTH_SHORT,
00112 
00117     ULISTFMT_WIDTH_NARROW,
00118 } UListFormatterWidth;
00119 
00138 U_CAPI UListFormatter* U_EXPORT2
00139 ulistfmt_open(const char*  locale,
00140               UErrorCode*  status);
00141 
00164 U_CAPI UListFormatter* U_EXPORT2
00165 ulistfmt_openForType(const char*  locale, UListFormatterType type,
00166                      UListFormatterWidth width, UErrorCode*  status);
00167 
00174 U_CAPI void U_EXPORT2
00175 ulistfmt_close(UListFormatter *listfmt);
00176 
00186 U_CAPI UFormattedList* U_EXPORT2
00187 ulistfmt_openResult(UErrorCode* ec);
00188 
00210 U_CAPI const UFormattedValue* U_EXPORT2
00211 ulistfmt_resultAsValue(const UFormattedList* uresult, UErrorCode* ec);
00212 
00219 U_CAPI void U_EXPORT2
00220 ulistfmt_closeResult(UFormattedList* uresult);
00221 
00222 
00223 #if U_SHOW_CPLUSPLUS_API
00224 
00225 U_NAMESPACE_BEGIN
00226 
00236 U_DEFINE_LOCAL_OPEN_POINTER(LocalUListFormatterPointer, UListFormatter, ulistfmt_close);
00237 
00247 U_DEFINE_LOCAL_OPEN_POINTER(LocalUFormattedListPointer, UFormattedList, ulistfmt_closeResult);
00248 
00249 U_NAMESPACE_END
00250 
00251 #endif
00252 
00287 U_CAPI int32_t U_EXPORT2
00288 ulistfmt_format(const UListFormatter* listfmt,
00289                 const UChar* const strings[],
00290                 const int32_t *    stringLengths,
00291                 int32_t            stringCount,
00292                 UChar*             result,
00293                 int32_t            resultCapacity,
00294                 UErrorCode*        status);
00295 
00322 U_CAPI void U_EXPORT2
00323 ulistfmt_formatStringsToResult(
00324                 const UListFormatter* listfmt,
00325                 const UChar* const strings[],
00326                 const int32_t *    stringLengths,
00327                 int32_t            stringCount,
00328                 UFormattedList*    uresult,
00329                 UErrorCode*        status);
00330 
00331 #endif /* #if !UCONFIG_NO_FORMATTING */
00332 
00333 #endif