16 #include <nn/pia/common/common_Definitions.h>
17 #include <nn/pia/common/common_String.h>
37 m_BufferSize = N * MultiByteCharMaxSize;
55 m_BufferSize = N * MultiByteCharMaxSize;
66 m_BufferSize = N * MultiByteCharMaxSize;
77 return N * MultiByteCharMaxSize;
85 for (uint32_t i = 0; i < N * MultiByteCharMaxSize + 1; i++)
97 if (!PIA_IS_VALID_POINTER(str))
101 if (byteSize > m_BufferSize)
107 if (byteSize > m_BufferSize / MultiByteCharMaxSize * 2)
109 PIA_RETURN_RESULT_WITH_REPORT(ResultInvalidArgument,
"String is too long.");
114 const char* p =
static_cast<const char*
>(str);
119 uint8_t ccc =
static_cast<uint8_t
>(*p);
120 if (ccc > 0x00 && ccc <= 0x7f)
124 else if (ccc >= 0xc2 && ccc <= 0xdf)
128 else if (ccc >= 0xe0 && ccc <= 0xef)
132 else if (ccc >= 0xf0 && ccc <= 0xf7)
136 else if (ccc >= 0xf8 && ccc <= 0xfb)
140 else if (ccc >= 0xfc && ccc <= 0xfd)
156 if (length > m_BufferSize / MultiByteCharMaxSize)
158 PIA_RETURN_RESULT_WITH_REPORT(ResultInvalidArgument,
"String is too long.");
163 PIA_RETURN_RESULT_WITH_REPORT(ResultInvalidArgument,
"String encoding type is not supported.");
166 for (uint32_t i = 0; i < m_BufferSize; i++)
174 for (
const char* p = static_cast<const char*>(str); *p != 0x00 && c < m_BufferSize; ++p)
183 for (
const charUtf16_t* p = static_cast<const charUtf16_t*>(str); *p != 0x0000 && c < m_BufferSize / MultiByteCharMaxSize * 2; ++p)
185 charUtf16_t* d =
reinterpret_cast<charUtf16_t*
>(&m_Buffer[c]);
190 m_Buffer[c + 1] = 0x00;
192 m_pBuffer = m_Buffer;
194 m_EncodingType = type;
196 return ResultSuccess();
200 char m_Buffer[N * MultiByteCharMaxSize + 1];