ICU 65.1  65.1
uformattable.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 ********************************************************************************
5 * Copyright (C) 2013-2014, International Business Machines Corporation and others.
6 * All Rights Reserved.
7 ********************************************************************************
8 *
9 * File UFORMATTABLE.H
10 *
11 * Modification History:
12 *
13 * Date Name Description
14 * 2013 Jun 7 srl New
15 ********************************************************************************
16 */
17 
30 #ifndef UFORMATTABLE_H
31 #define UFORMATTABLE_H
32 
33 #include "unicode/utypes.h"
34 
35 #if !UCONFIG_NO_FORMATTING
36 
37 #include "unicode/localpointer.h"
38 
46 typedef enum UFormattableType {
47  UFMT_DATE = 0,
54 #ifndef U_HIDE_DEPRECATED_API
55 
60 #endif /* U_HIDE_DEPRECATED_API */
62 
63 
70 typedef void *UFormattable;
71 
82 U_STABLE UFormattable* U_EXPORT2
83 ufmt_open(UErrorCode* status);
84 
91 U_STABLE void U_EXPORT2
93 
94 #if U_SHOW_CPLUSPLUS_API
95 
96 U_NAMESPACE_BEGIN
97 
108 
109 U_NAMESPACE_END
110 
111 #endif
112 
123 U_STABLE UFormattableType U_EXPORT2
124 ufmt_getType(const UFormattable* fmt, UErrorCode *status);
125 
134 U_STABLE UBool U_EXPORT2
135 ufmt_isNumeric(const UFormattable* fmt);
136 
147 U_STABLE UDate U_EXPORT2
148 ufmt_getDate(const UFormattable* fmt, UErrorCode *status);
149 
165 U_STABLE double U_EXPORT2
166 ufmt_getDouble(UFormattable* fmt, UErrorCode *status);
167 
186 U_STABLE int32_t U_EXPORT2
187 ufmt_getLong(UFormattable* fmt, UErrorCode *status);
188 
189 
207 U_STABLE int64_t U_EXPORT2
208 ufmt_getInt64(UFormattable* fmt, UErrorCode *status);
209 
220 U_STABLE const void *U_EXPORT2
221 ufmt_getObject(const UFormattable* fmt, UErrorCode *status);
222 
235 U_STABLE const UChar* U_EXPORT2
236 ufmt_getUChars(UFormattable* fmt, int32_t *len, UErrorCode *status);
237 
246 U_STABLE int32_t U_EXPORT2
247 ufmt_getArrayLength(const UFormattable* fmt, UErrorCode *status);
248 
258 U_STABLE UFormattable * U_EXPORT2
259 ufmt_getArrayItemByIndex(UFormattable* fmt, int32_t n, UErrorCode *status);
260 
283 U_STABLE const char * U_EXPORT2
284 ufmt_getDecNumChars(UFormattable *fmt, int32_t *len, UErrorCode *status);
285 
286 #endif
287 
288 #endif
UFormattable * ufmt_open(UErrorCode *status)
Initialize a UFormattable, to type UNUM_LONG, value 0 may return error if memory allocation failed...
double ufmt_getDouble(UFormattable *fmt, UErrorCode *status)
Gets the double value of this object.
const UChar * ufmt_getUChars(UFormattable *fmt, int32_t *len, UErrorCode *status)
Gets the string value of this object as a UChar string.
double UDate
Date and Time data type.
Definition: utypes.h:203
UDate ufmt_getDate(const UFormattable *fmt, UErrorCode *status)
Gets the UDate value of this object.
One more than the highest normal UFormattableType value.
Definition: uformattable.h:59
int32_t ufmt_getArrayLength(const UFormattable *fmt, UErrorCode *status)
Get the number of array objects contained, if an array type UFMT_ARRAY.
UFormattableType ufmt_getType(const UFormattable *fmt, UErrorCode *status)
Return the type of this object.
ufmt_getDate() will return without conversion.
Definition: uformattable.h:47
int32_t ufmt_getLong(UFormattable *fmt, UErrorCode *status)
Gets the long (int32_t) value of this object.
ufmt_countArray() and ufmt_getArray() will return the value.
Definition: uformattable.h:51
UFormattableType
Enum designating the type of a UFormattable instance.
Definition: uformattable.h:46
void ufmt_close(UFormattable *fmt)
Cleanup any additional memory allocated by this UFormattable.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:562
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
ufmt_getInt64() will return without conversion.
Definition: uformattable.h:52
ufmt_getObject() will return without conversion.
Definition: uformattable.h:53
UBool ufmt_isNumeric(const UFormattable *fmt)
Return whether the object is numeric.
int64_t ufmt_getInt64(UFormattable *fmt, UErrorCode *status)
Gets the int64_t value of this object.
UFormattable * ufmt_getArrayItemByIndex(UFormattable *fmt, int32_t n, UErrorCode *status)
Get the specified value from the array of UFormattables.
ufmt_getLong() will return without conversion.
Definition: uformattable.h:49
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
"Smart pointer" class, closes a UFormattable via ufmt_close().
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
ufmt_getUChars() will return without conversion.
Definition: uformattable.h:50
Basic definitions for ICU, for both C and C++ APIs.
const void * ufmt_getObject(const UFormattable *fmt, UErrorCode *status)
Returns a pointer to the UObject contained within this formattable (as a const void*), or NULL if this object is not of type UFMT_OBJECT.
void * UFormattable
Opaque type representing various types of data which may be used for formatting and parsing operation...
Definition: uformattable.h:70
ufmt_getDouble() will return without conversion.
Definition: uformattable.h:48
const char * ufmt_getDecNumChars(UFormattable *fmt, int32_t *len, UErrorCode *status)
Returns a numeric string representation of the number contained within this formattable, or NULL if this object does not contain numeric type.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261