FreeRDP
winpr/include/winpr/string.h File Reference
#include <wchar.h>
#include <stdio.h>
#include <string.h>
#include <winpr/config.h>
#include <winpr/winpr.h>
#include <winpr/wtypes.h>

Macros

#define CSTR_LESS_THAN   1
 
#define CSTR_EQUAL   2
 
#define CSTR_GREATER_THAN   3
 
#define CP_ACP   0
 
#define CP_OEMCP   1
 
#define CP_MACCP   2
 
#define CP_THREAD_ACP   3
 
#define CP_SYMBOL   42
 
#define CP_UTF7   65000
 
#define CP_UTF8   65001
 
#define MB_PRECOMPOSED   0x00000001
 
#define MB_COMPOSITE   0x00000002
 
#define MB_USEGLYPHCHARS   0x00000004
 
#define MB_ERR_INVALID_CHARS   0x00000008
 
#define CharUpper   CharUpperA
 
#define CharUpperBuff   CharUpperBuffA
 
#define CharLower   CharLowerA
 
#define CharLowerBuff   CharLowerBuffA
 
#define IsCharAlpha   IsCharAlphaA
 
#define IsCharAlphaNumeric   IsCharAlphaNumericA
 
#define IsCharUpper   IsCharUpperA
 
#define IsCharLower   IsCharLowerA
 
#define lstrlen   lstrlenA
 
#define lstrcmp   lstrcmpA
 
#define sprintf_s   snprintf
 
#define _snprintf   snprintf
 
#define _scprintf(...)   snprintf(NULL, 0, __VA_ARGS__)
 
#define _scprintf(...)   snprintf(NULL, 0, __VA_ARGS__)
 

Functions

WINPR_API BOOL winpr_str_append (const char *what, char *buffer, size_t size, const char *separator)
 
WINPR_API char * _strdup (const char *strSource)
 
WINPR_API WCHAR * _wcsdup (const WCHAR *strSource)
 
WINPR_API int _stricmp (const char *string1, const char *string2)
 
WINPR_API int _strnicmp (const char *string1, const char *string2, size_t count)
 
WINPR_API int _wcscmp (const WCHAR *string1, const WCHAR *string2)
 
WINPR_API int _wcsncmp (const WCHAR *string1, const WCHAR *string2, size_t count)
 
WINPR_API size_t _wcslen (const WCHAR *str)
 
WINPR_API size_t _wcsnlen (const WCHAR *str, size_t maxNumberOfElements)
 
WINPR_API WCHAR * _wcsstr (const WCHAR *str, const WCHAR *strSearch)
 
WINPR_API WCHAR * _wcschr (const WCHAR *str, WCHAR c)
 
WINPR_API WCHAR * _wcsrchr (const WCHAR *str, WCHAR c)
 
WINPR_API char * strtok_s (char *strToken, const char *strDelimit, char **context)
 
WINPR_API WCHAR * wcstok_s (WCHAR *strToken, const WCHAR *strDelimit, WCHAR **context)
 
WINPR_API LPSTR CharUpperA (LPSTR lpsz)
 
WINPR_API LPWSTR CharUpperW (LPWSTR lpsz)
 
WINPR_API DWORD CharUpperBuffA (LPSTR lpsz, DWORD cchLength)
 
WINPR_API DWORD CharUpperBuffW (LPWSTR lpsz, DWORD cchLength)
 
WINPR_API LPSTR CharLowerA (LPSTR lpsz)
 
WINPR_API LPWSTR CharLowerW (LPWSTR lpsz)
 
WINPR_API DWORD CharLowerBuffA (LPSTR lpsz, DWORD cchLength)
 
WINPR_API DWORD CharLowerBuffW (LPWSTR lpsz, DWORD cchLength)
 
WINPR_API BOOL IsCharAlphaA (CHAR ch)
 
WINPR_API BOOL IsCharAlphaW (WCHAR ch)
 
WINPR_API BOOL IsCharAlphaNumericA (CHAR ch)
 
WINPR_API BOOL IsCharAlphaNumericW (WCHAR ch)
 
WINPR_API BOOL IsCharUpperA (CHAR ch)
 
WINPR_API BOOL IsCharUpperW (WCHAR ch)
 
WINPR_API BOOL IsCharLowerA (CHAR ch)
 
WINPR_API BOOL IsCharLowerW (WCHAR ch)
 
WINPR_API int lstrlenA (LPCSTR lpString)
 
WINPR_API int lstrlenW (LPCWSTR lpString)
 
WINPR_API int lstrcmpA (LPCSTR lpString1, LPCSTR lpString2)
 
WINPR_API int lstrcmpW (LPCWSTR lpString1, LPCWSTR lpString2)
 
WINPR_API SSIZE_T ConvertWCharToUtf8 (const WCHAR *wstr, char *str, size_t len)
 Converts form UTF-16 to UTF-8. More...
 
WINPR_API SSIZE_T ConvertWCharNToUtf8 (const WCHAR *wstr, size_t wlen, char *str, size_t len)
 Converts form UTF-16 to UTF-8. More...
 
WINPR_API SSIZE_T ConvertMszWCharNToUtf8 (const WCHAR *wstr, size_t wlen, char *str, size_t len)
 Converts multistrings form UTF-16 to UTF-8. More...
 
WINPR_API SSIZE_T ConvertUtf8ToWChar (const char *str, WCHAR *wstr, size_t wlen)
 Converts form UTF-8 to UTF-16. More...
 
WINPR_API SSIZE_T ConvertUtf8NToWChar (const char *str, size_t len, WCHAR *wstr, size_t wlen)
 Converts form UTF-8 to UTF-16. More...
 
WINPR_API SSIZE_T ConvertMszUtf8NToWChar (const char *str, size_t len, WCHAR *wstr, size_t wlen)
 Converts multistrings form UTF-8 to UTF-16. More...
 
WINPR_API char * ConvertWCharToUtf8Alloc (const WCHAR *wstr, size_t *pSize)
 Converts form UTF-16 to UTF-8, returns an allocated string. More...
 
WINPR_API char * ConvertWCharNToUtf8Alloc (const WCHAR *wstr, size_t wlen, size_t *pSize)
 Converts form UTF-16 to UTF-8, returns an allocated string. More...
 
WINPR_API char * ConvertMszWCharNToUtf8Alloc (const WCHAR *wstr, size_t wlen, size_t *pSize)
 Converts multistring form UTF-16 to UTF-8, returns an allocated string. More...
 
WINPR_API WCHAR * ConvertUtf8ToWCharAlloc (const char *str, size_t *pSize)
 Converts form UTF-8 to UTF-16, returns an allocated string. More...
 
WINPR_API WCHAR * ConvertUtf8NToWCharAlloc (const char *str, size_t len, size_t *pSize)
 Converts form UTF-8 to UTF-16, returns an allocated string. More...
 
WINPR_API WCHAR * ConvertMszUtf8NToWCharAlloc (const char *str, size_t len, size_t *pSize)
 Converts multistring form UTF-8 to UTF-16, returns an allocated string. More...
 
WINPR_API void ByteSwapUnicode (WCHAR *wstr, size_t length)
 
WINPR_API size_t ConvertLineEndingToLF (char *str, size_t size)
 
WINPR_API char * ConvertLineEndingToCRLF (const char *str, size_t *size)
 
WINPR_API char * StrSep (char **stringp, const char *delim)
 
WINPR_API INT64 GetLine (char **lineptr, size_t *size, FILE *stream)
 
WINPR_API char * strndup (const char *s, size_t n)
 

Macro Definition Documentation

◆ _scprintf [1/2]

#define _scprintf (   ...)    snprintf(NULL, 0, __VA_ARGS__)

◆ _scprintf [2/2]

#define _scprintf (   ...)    snprintf(NULL, 0, __VA_ARGS__)

◆ _snprintf

#define _snprintf   snprintf

◆ CharLower

#define CharLower   CharLowerA

◆ CharLowerBuff

#define CharLowerBuff   CharLowerBuffA

◆ CharUpper

#define CharUpper   CharUpperA

◆ CharUpperBuff

#define CharUpperBuff   CharUpperBuffA

◆ CP_ACP

#define CP_ACP   0

◆ CP_MACCP

#define CP_MACCP   2

◆ CP_OEMCP

#define CP_OEMCP   1

◆ CP_SYMBOL

#define CP_SYMBOL   42

◆ CP_THREAD_ACP

#define CP_THREAD_ACP   3

◆ CP_UTF7

#define CP_UTF7   65000

◆ CP_UTF8

#define CP_UTF8   65001

◆ CSTR_EQUAL

#define CSTR_EQUAL   2

◆ CSTR_GREATER_THAN

#define CSTR_GREATER_THAN   3

◆ CSTR_LESS_THAN

#define CSTR_LESS_THAN   1

◆ IsCharAlpha

#define IsCharAlpha   IsCharAlphaA

◆ IsCharAlphaNumeric

#define IsCharAlphaNumeric   IsCharAlphaNumericA

◆ IsCharLower

#define IsCharLower   IsCharLowerA

◆ IsCharUpper

#define IsCharUpper   IsCharUpperA

◆ lstrcmp

#define lstrcmp   lstrcmpA

◆ lstrlen

#define lstrlen   lstrlenA

◆ MB_COMPOSITE

#define MB_COMPOSITE   0x00000002

◆ MB_ERR_INVALID_CHARS

#define MB_ERR_INVALID_CHARS   0x00000008

◆ MB_PRECOMPOSED

#define MB_PRECOMPOSED   0x00000001

◆ MB_USEGLYPHCHARS

#define MB_USEGLYPHCHARS   0x00000004

◆ sprintf_s

#define sprintf_s   snprintf

Function Documentation

◆ _strdup()

WINPR_API char* _strdup ( const char *  strSource)

◆ _stricmp()

WINPR_API int _stricmp ( const char *  string1,
const char *  string2 
)
Here is the caller graph for this function:

◆ _strnicmp()

WINPR_API int _strnicmp ( const char *  string1,
const char *  string2,
size_t  count 
)
Here is the caller graph for this function:

◆ _wcschr()

WINPR_API WCHAR* _wcschr ( const WCHAR *  str,
WCHAR  c 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _wcscmp()

WINPR_API int _wcscmp ( const WCHAR *  string1,
const WCHAR *  string2 
)
Here is the caller graph for this function:

◆ _wcsdup()

WINPR_API WCHAR* _wcsdup ( const WCHAR *  strSource)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _wcslen()

WINPR_API size_t _wcslen ( const WCHAR *  str)
Here is the caller graph for this function:

◆ _wcsncmp()

WINPR_API int _wcsncmp ( const WCHAR *  string1,
const WCHAR *  string2,
size_t  count 
)
Here is the caller graph for this function:

◆ _wcsnlen()

WINPR_API size_t _wcsnlen ( const WCHAR *  str,
size_t  maxNumberOfElements 
)
Here is the caller graph for this function:

◆ _wcsrchr()

WINPR_API WCHAR* _wcsrchr ( const WCHAR *  str,
WCHAR  c 
)
Here is the caller graph for this function:

◆ _wcsstr()

WINPR_API WCHAR* _wcsstr ( const WCHAR *  str,
const WCHAR *  strSearch 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ByteSwapUnicode()

WINPR_API void ByteSwapUnicode ( WCHAR *  wstr,
size_t  length 
)

ConvertToUnicode is a convenience wrapper for MultiByteToWideChar:

If the lpWideCharStr parameter for the converted string points to NULL or if the cchWideChar parameter is set to 0 this function will automatically allocate the required memory which is guaranteed to be null-terminated after the conversion, even if the source c string isn't.

If the cbMultiByte parameter is set to -1 the passed lpMultiByteStr must be null-terminated and the required length for the converted string will be calculated accordingly. ConvertFromUnicode is a convenience wrapper for WideCharToMultiByte:

If the lpMultiByteStr parameter for the converted string points to NULL or if the cbMultiByte parameter is set to 0 this function will automatically allocate the required memory which is guaranteed to be null-terminated after the conversion, even if the source unicode string isn't.

If the cchWideChar parameter is set to -1 the passed lpWideCharStr must be null-terminated and the required length for the converted string will be calculated accordingly. Swap Unicode byte order (UTF16LE <-> UTF16BE)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CharLowerA()

WINPR_API LPSTR CharLowerA ( LPSTR  lpsz)

◆ CharLowerBuffA()

WINPR_API DWORD CharLowerBuffA ( LPSTR  lpsz,
DWORD  cchLength 
)

◆ CharLowerBuffW()

WINPR_API DWORD CharLowerBuffW ( LPWSTR  lpsz,
DWORD  cchLength 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CharLowerW()

WINPR_API LPWSTR CharLowerW ( LPWSTR  lpsz)
Here is the call graph for this function:

◆ CharUpperA()

WINPR_API LPSTR CharUpperA ( LPSTR  lpsz)
Here is the caller graph for this function:

◆ CharUpperBuffA()

WINPR_API DWORD CharUpperBuffA ( LPSTR  lpsz,
DWORD  cchLength 
)
Here is the caller graph for this function:

◆ CharUpperBuffW()

WINPR_API DWORD CharUpperBuffW ( LPWSTR  lpsz,
DWORD  cchLength 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CharUpperW()

WINPR_API LPWSTR CharUpperW ( LPWSTR  lpsz)
Here is the call graph for this function:

◆ ConvertLineEndingToCRLF()

WINPR_API char* ConvertLineEndingToCRLF ( const char *  str,
size_t *  size 
)
Here is the caller graph for this function:

◆ ConvertLineEndingToLF()

WINPR_API size_t ConvertLineEndingToLF ( char *  str,
size_t  size 
)
Here is the caller graph for this function:

◆ ConvertMszUtf8NToWChar()

WINPR_API SSIZE_T ConvertMszUtf8NToWChar ( const char *  str,
size_t  len,
WCHAR *  wstr,
size_t  wlen 
)

Converts multistrings form UTF-8 to UTF-16.

The function does string conversions of any input string of len characters. Any character in the buffer (incuding any '\0') is converted.

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
strA CHAR string of len length
lenThe (buffer) length in characters of str
wstrA pointer to the result WCHAR string
wlenThe length in WCHAR characters of the result buffer
Returns
the size of the converted string in WCHAR characters (including any '\0'), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertMszUtf8NToWCharAlloc()

WINPR_API WCHAR* ConvertMszUtf8NToWCharAlloc ( const char *  str,
size_t  len,
size_t *  pSize 
)

Converts multistring form UTF-8 to UTF-16, returns an allocated string.

The function does string conversions of any input string of len characters. Any character in the buffer (incuding any '\0') is converted.

Parameters
strA CHAR string of len byte length
lenThe (buffer) length in characters of str
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (including any '\0' character)
Returns
An allocated double zero terminated UTF-16 string or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertMszWCharNToUtf8()

WINPR_API SSIZE_T ConvertMszWCharNToUtf8 ( const WCHAR *  wstr,
size_t  wlen,
char *  str,
size_t  len 
)

Converts multistrings form UTF-16 to UTF-8.

The function does string conversions of any input string of wlen characters. Any character in the buffer (incuding any '\0') is converted.

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
wstrA WCHAR string of wlen length
wlenThe (buffer) length in characters of wstr
strA pointer to the result string
lenThe length in characters of the result buffer
Returns
the size of the converted string in CHAR characters (including any '\0'), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertMszWCharNToUtf8Alloc()

WINPR_API char* ConvertMszWCharNToUtf8Alloc ( const WCHAR *  wstr,
size_t  wlen,
size_t *  pSize 
)

Converts multistring form UTF-16 to UTF-8, returns an allocated string.

The function does string conversions of any input string of len characters. Any character in the buffer (incuding any '\0') is converted.

Parameters
strA WCHAR string of len character length
lenThe (buffer) length in characters of str
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (including any '\0' character)
Returns
An allocated double zero terminated UTF-8 string or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertUtf8NToWChar()

WINPR_API SSIZE_T ConvertUtf8NToWChar ( const char *  str,
size_t  len,
WCHAR *  wstr,
size_t  wlen 
)

Converts form UTF-8 to UTF-16.

The function does string conversions of any input string of len (or less) characters until it reaches the first '\0'.

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
strA CHAR string of len length
lenThe (buffer) length in characters of str
wstrA pointer to the result WCHAR string
wlenThe length in WCHAR characters of the result buffer
Returns
the size of the converted string in WCHAR characters (wcslen), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertUtf8NToWCharAlloc()

WINPR_API WCHAR* ConvertUtf8NToWCharAlloc ( const char *  str,
size_t  len,
size_t *  pSize 
)

Converts form UTF-8 to UTF-16, returns an allocated string.

The function does string conversions of any input string of len (or less) characters until it reaches the first '\0'.

Parameters
strA CHAR string of len length
lenThe (buffer) length in characters of str
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (wcslen)
Returns
An allocated zero terminated UTF-16 string or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertUtf8ToWChar()

WINPR_API SSIZE_T ConvertUtf8ToWChar ( const char *  str,
WCHAR *  wstr,
size_t  wlen 
)

Converts form UTF-8 to UTF-16.

The function does string conversions of any '\0' terminated input string

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
strA '\0' terminated CHAR string, may be NULL
wstrA pointer to the result WCHAR string
wlenThe length in WCHAR characters of the result buffer
Returns
the size of the converted string in WCHAR characters (wcslen), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertUtf8ToWCharAlloc()

WINPR_API WCHAR* ConvertUtf8ToWCharAlloc ( const char *  str,
size_t *  pSize 
)

Converts form UTF-8 to UTF-16, returns an allocated string.

The function does string conversions of any '\0' terminated input string

Parameters
strA '\0' terminated CHAR string, may be NULL
lenThe (buffer) length in characters of str
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (wcslen)
Returns
An allocated zero terminated UTF-16 string or NULL in case of failure.
Here is the call graph for this function:

◆ ConvertWCharNToUtf8()

WINPR_API SSIZE_T ConvertWCharNToUtf8 ( const WCHAR *  wstr,
size_t  wlen,
char *  str,
size_t  len 
)

Converts form UTF-16 to UTF-8.

The function does string conversions of any input string of wlen (or less) characters until it reaches the first '\0'.

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
wstrA WCHAR string of wlen length
wlenThe (buffer) length in characters of wstr
strA pointer to the result string
lenThe length in characters of the result buffer
Returns
the size of the converted string in char (strlen), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertWCharNToUtf8Alloc()

WINPR_API char* ConvertWCharNToUtf8Alloc ( const WCHAR *  wstr,
size_t  wlen,
size_t *  pSize 
)

Converts form UTF-16 to UTF-8, returns an allocated string.

The function does string conversions of any input string of wlen (or less) characters until it reaches the first '\0'.

Parameters
wstrA WCHAR string of wlen length
wlenThe (buffer) length in characters of wstr
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (strlen)
Returns
An allocated zero terminated UTF-8 string or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertWCharToUtf8()

WINPR_API SSIZE_T ConvertWCharToUtf8 ( const WCHAR *  wstr,
char *  str,
size_t  len 
)

Converts form UTF-16 to UTF-8.

The function does string conversions of any '\0' terminated input string

Supplying len = 0 will return the required size of the buffer in characters.

Warning
Supplying a buffer length smaller than required will result in platform dependent (=undefined) behaviour!
Parameters
wstrA '\0' terminated WCHAR string, may be NULL
strA pointer to the result string
lenThe length in characters of the result buffer
Returns
the size of the converted string in char (strlen), or -1 for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertWCharToUtf8Alloc()

WINPR_API char* ConvertWCharToUtf8Alloc ( const WCHAR *  wstr,
size_t *  pSize 
)

Converts form UTF-16 to UTF-8, returns an allocated string.

The function does string conversions of any '\0' terminated input string

Parameters
wstrA '\0' terminated WCHAR string, may be NULL
pSizeIgnored if NULL, otherwise receives the length of the result string in characters (strlen)
Returns
An allocated zero terminated UTF-8 string or NULL in case of failure.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetLine()

WINPR_API INT64 GetLine ( char **  lineptr,
size_t *  size,
FILE *  stream 
)
Here is the caller graph for this function:

◆ IsCharAlphaA()

WINPR_API BOOL IsCharAlphaA ( CHAR  ch)

◆ IsCharAlphaNumericA()

WINPR_API BOOL IsCharAlphaNumericA ( CHAR  ch)

◆ IsCharAlphaNumericW()

WINPR_API BOOL IsCharAlphaNumericW ( WCHAR  ch)

◆ IsCharAlphaW()

WINPR_API BOOL IsCharAlphaW ( WCHAR  ch)
Here is the caller graph for this function:

◆ IsCharLowerA()

WINPR_API BOOL IsCharLowerA ( CHAR  ch)

◆ IsCharLowerW()

WINPR_API BOOL IsCharLowerW ( WCHAR  ch)

◆ IsCharUpperA()

WINPR_API BOOL IsCharUpperA ( CHAR  ch)

◆ IsCharUpperW()

WINPR_API BOOL IsCharUpperW ( WCHAR  ch)

◆ lstrcmpA()

WINPR_API int lstrcmpA ( LPCSTR  lpString1,
LPCSTR  lpString2 
)

◆ lstrcmpW()

WINPR_API int lstrcmpW ( LPCWSTR  lpString1,
LPCWSTR  lpString2 
)
Here is the caller graph for this function:

◆ lstrlenA()

WINPR_API int lstrlenA ( LPCSTR  lpString)
Here is the caller graph for this function:

◆ lstrlenW()

WINPR_API int lstrlenW ( LPCWSTR  lpString)
Here is the caller graph for this function:

◆ strndup()

WINPR_API char* strndup ( const char *  s,
size_t  n 
)
Here is the caller graph for this function:

◆ StrSep()

WINPR_API char* StrSep ( char **  stringp,
const char *  delim 
)
Here is the caller graph for this function:

◆ strtok_s()

WINPR_API char* strtok_s ( char *  strToken,
const char *  strDelimit,
char **  context 
)
Here is the caller graph for this function:

◆ wcstok_s()

WINPR_API WCHAR* wcstok_s ( WCHAR *  strToken,
const WCHAR *  strDelimit,
WCHAR **  context 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ winpr_str_append()

WINPR_API BOOL winpr_str_append ( const char *  what,
char *  buffer,
size_t  size,
const char *  separator 
)

WinPR: Windows Portable Runtime String Manipulation (CRT)

Copyright 2012 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2016 David PHAM-VAN d.pha.nosp@m.mvan.nosp@m.@inuv.nosp@m.ika..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Here is the caller graph for this function: