ZFFramework
Loading...
Searching...
No Matches
zfstringW.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_zfstringW_h_
7#define _ZFI_zfstringW_h_
8
9#include "ZFObject.h"
10#include <cwchar>
12
13// ============================================================
15#ifndef _ZFT_zfcharW
16 typedef wchar_t zfcharW;
17#else
18 typedef _ZFT_zfcharW zfcharW;
19#endif
20
22#ifndef _ZFT_zfstringW
24#else
25 typedef _ZFT_zfstringW zfstringW;
26#endif
27
28// ============================================================
60 ZFENUM_VALUE(UTF8 = 1)
61 ZFENUM_VALUE(UTF16LE = 2)
62 ZFENUM_VALUE(UTF16BE = 3)
66 ZFENUM_VALUE_REGISTER_WITH_NAME(UTF16LE, "UTF16")
67 ZFENUM_VALUE_REGISTER_WITH_NAME(UTF16BE, "UTF16BE")
71
72// ============================================================
73// conversion
80 ZF_IN_OUT zfstring &result
81 , ZF_IN ZFStringEncoding srcEncoding
82 , ZF_IN const void *src
83 , ZF_IN_OPT zfindex srcLen = zfindexMax()
84 );
87 ZF_IN ZFStringEncoding srcEncoding
88 , ZF_IN const void *src
89 , ZF_IN_OPT zfindex srcLen = zfindexMax()
90 , ZF_OUT_OPT zfbool *success = zfnull
91 ) {
92 zfstring ret;
93 zfbool t = zfstringToUTF8(ret, srcEncoding, src, srcLen);
94 if(success != zfnull) {*success = t;}
95 return ret;
96}
97
100 ZF_IN_OUT zfstringW &result
101 , ZF_IN ZFStringEncoding srcEncoding
102 , ZF_IN const void *src
103 , ZF_IN_OPT zfindex srcLen = zfindexMax()
104 );
107 ZF_IN ZFStringEncoding srcEncoding
108 , ZF_IN const void *src
109 , ZF_IN_OPT zfindex srcLen = zfindexMax()
110 , ZF_OUT_OPT zfbool *success = zfnull
111 ) {
112 zfstringW ret;
113 zfbool t = zfstringToUTF16(ret, srcEncoding, src, srcLen);
114 if(success != zfnull) {*success = t;}
115 return ret;
116}
117
119 ZF_IN_OUT zfstringW &result
120 , ZF_IN ZFStringEncoding srcEncoding
121 , ZF_IN const void *src
122 , ZF_IN_OPT zfindex srcLen = zfindexMax()
123 );
126 ZF_IN ZFStringEncoding srcEncoding
127 , ZF_IN const void *src
128 , ZF_IN_OPT zfindex srcLen = zfindexMax()
129 , ZF_OUT_OPT zfbool *success = zfnull
130 ) {
131 zfstringW ret;
132 zfbool t = zfstringToUTF16BE(ret, srcEncoding, src, srcLen);
133 if(success != zfnull) {*success = t;}
134 return ret;
135}
136
137// ============================================================
140 ZF_IN_OUT zfstringW &result
141 , ZF_IN const zfstring &src
142 ) {
143 return zfstringToUTF16(result, v_ZFStringEncoding::e_UTF8, src.cString(), src.length());
144}
145
147 return zfstringToUTF16(v_ZFStringEncoding::e_UTF8, src.cString(), src.length());
148}
149
152 ZF_IN_OUT zfstring &result
153 , ZF_IN const zfstringW &src
154 ) {
155 return zfstringToUTF8(result, v_ZFStringEncoding::e_UTF16, src.cString(), src.length());
156}
157
159 return zfstringToUTF8(v_ZFStringEncoding::e_UTF16, src.cString(), src.length());
160}
161
163#endif // #ifndef _ZFI_zfstringW_h_
164
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:203
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:191
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:195
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:207
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#define zfindexMax()
(zfindex)-1, indicate a max index value, see zfindex
Definition ZFCoreTypeDef_CoreType.h:159
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFENUM_VALUE_REGISTER_WITH_NAME(Value, Name)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:165
#define ZFENUM_VALUE_REGISTER(Value)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:168
#define ZFENUM_REG(ZFLIB_, EnumName,...)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:186
#define ZFENUM_SEPARATOR_ALLOW_DUPLICATE_VALUE()
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:161
#define ZFENUM_VALUE(Value)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:151
#define ZFENUM_BEGIN(ZFLIB_, EnumName)
macros to define reflectable enum type
Definition ZFEnumDeclare.h:147
#define ZFENUM_END(ZFLIB_, EnumName)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:172
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
ZFObject related include.
@ e_UTF16LE
Definition zfstringW.h:61
@ e_UTF8
Definition zfstringW.h:60
@ e_UTF16
Definition zfstringW.h:63
low level string container
Definition zfstring.h:91
zfbool zfstringToUTF16(zfstringW &result, ZFStringEncoding srcEncoding, const void *src, zfindex srcLen=((zfindex) -1))
see zfstringToUTF8
zft_zfstring< zfcharW > zfstringW
wstring wrapper
Definition zfstringW.h:23
zfbool zfstringToUTF8(zfstring &result, ZFStringEncoding srcEncoding, const void *src, zfindex srcLen=((zfindex) -1))
convert to deisred encoding, or empty string if failed
v_ZFStringEncoding::ZFEnumType ZFStringEncoding
see v_ZFStringEncoding
Definition zfstringW.h:69
wchar_t zfcharW
wchar_t wrapper
Definition zfstringW.h:16
zfbool zfstringToUTF16BE(zfstringW &result, ZFStringEncoding srcEncoding, const void *src, zfindex srcLen=((zfindex) -1))
see zfstringToUTF8