Template Class SI_ConvertA

Class Documentation

template<class SI_CHAR>
class SI_ConvertA

Null conversion class for MBCS/UTF-8 to char (or equivalent).

Public Functions

inline SI_ConvertA(bool a_bStoreIsUtf8)
inline SI_ConvertA(const SI_ConvertA &rhs)
inline SI_ConvertA &operator=(const SI_ConvertA &rhs)
inline size_t SizeFromStore(const char *a_pInputData, size_t a_uInputDataLen)

Calculate the number of SI_CHAR required for converting the input from the storage format. The storage format is always UTF-8 or MBCS.

Parameters:
  • a_pInputData – Data in storage format to be converted to SI_CHAR.

  • a_uInputDataLen – Length of storage format data in bytes. This must be the actual length of the data, including NULL byte if NULL terminated string is required.

Returns:

Number of SI_CHAR required by the string when converted. If there are embedded NULL bytes in the input data, only the string up and not including the NULL byte will be converted.

Returns:

-1 cast to size_t on a conversion error.

inline bool ConvertFromStore(const char *a_pInputData, size_t a_uInputDataLen, SI_CHAR *a_pOutputData, size_t a_uOutputDataSize)

Convert the input string from the storage format to SI_CHAR. The storage format is always UTF-8 or MBCS.

Parameters:
  • a_pInputData – Data in storage format to be converted to SI_CHAR.

  • a_uInputDataLen – Length of storage format data in bytes. This must be the actual length of the data, including NULL byte if NULL terminated string is required.

  • a_pOutputData – Pointer to the output buffer to received the converted data.

  • a_uOutputDataSize – Size of the output buffer in SI_CHAR.

Returns:

true if all of the input data was successfully converted.

inline size_t SizeToStore(const SI_CHAR *a_pInputData)

Calculate the number of char required by the storage format of this data. The storage format is always UTF-8 or MBCS.

Parameters:

a_pInputData – NULL terminated string to calculate the number of bytes required to be converted to storage format.

Returns:

Number of bytes required by the string when converted to storage format. This size always includes space for the terminating NULL character.

Returns:

-1 cast to size_t on a conversion error.

inline bool ConvertToStore(const SI_CHAR *a_pInputData, char *a_pOutputData, size_t a_uOutputDataSize)

Convert the input string to the storage format of this data. The storage format is always UTF-8 or MBCS.

Parameters:
  • a_pInputData – NULL terminated source string to convert. All of the data will be converted including the terminating NULL character.

  • a_pOutputData – Pointer to the buffer to receive the converted string.

  • a_uOutputDataSize – Size of the output buffer in char.

Returns:

true if all of the input data, including the terminating NULL character was successfully converted.

Protected Functions

inline SI_ConvertA()