7#ifndef _STRINGTEMPLATE_CLASS_HEADER_
8#define _STRINGTEMPLATE_CLASS_HEADER_
29template <
class storageT>
44 typedef typename _StorageType::iterator
iterator;
91 if (
this != &strValue)
109 if (
this != &strValue)
163 Set(strValue, szLength);
179 static_assert(std::is_same<value_type, tChar>::value
180 || std::is_same<value_type, tUInt8>::value,
181 "storageT::value_type must be tChar or tUInt8 and specified !!");
271 if (pString !=
nullptr)
644 return Append(strToInsertString, nLength);
668 if (pToInsertString !=
nullptr)
848 return strTmp.
Find(strCompare, nStart);
971 if (
IsEmpty() || nFindSize == 0)
979 nStart =
Find(strFind, nStart);
1008 tSize nReplaceCount = 0;
1013 tSize nStartPos = 0;
1016 nPos =
Find(strOld, nStartPos);
1019 strBuffer.
Append(
Mid(nStartPos, (nPos - nStartPos)));
1020 strBuffer.
Append(strNew);
1021 nStartPos = nPos + nSearchLen;
1037 return nReplaceCount;
1060 tSize nReplacements = 0;
1063 for (; oIt != oItEnd; ++oIt)
1075 return nReplacements;
1113 tSize nFiltered = 0;
1114 for (
tSize nPos = 0; nPos < nSize; ++nPos)
1157 if (szRight != InvalidPos)
1159 strFirst =
Left(szRight);
1170 strFirst =
Left(szRight);
1186 if (szStringLength == 0
1187 || (strEndsWith.
GetLength() > szStringLength))
1199 return strPart.
IsEqual(strEndsWith);
1317 return (
Compare(strString) == 0);
1328 return (
Compare(strString) != 0);
1339 return (
Compare(strString) < 0);
1350 return (
Compare(strString) > 0);
1362 return (
Compare(strString) <= 0);
1374 return (
Compare(strString) >= 0);
1520 lstSplittedResult.
Clear();
1532 nStartPos = nPos + 1;
1533 nPos =
Find(strToken, nStartPos);
1538 lstSplittedResult.
Append(
Mid(nStartPos, nPos - nStartPos));
1544 nPos += nTokenLen - 1;
1548 if (nStartPos < nToSplitStringSize)
1550 lstSplittedResult.
Append(
Mid(nStartPos));
1585 nPos =
FindToken(strTokenList, nLastPos);
1588 strPart =
Mid(nLastPos);
1597 if (nPos > nLastPos)
1599 strPart =
Mid(nLastPos, nPos - nLastPos);
1602 nLastPos = nPos + 1;
1698 bLastWasZero =
tTrue;
1757 for (
auto it =
begin();
1762 *it =
static_cast<tChar>(::tolower(*it));
1779 for (
auto it =
begin();
1783 *it = ::toupper(
static_cast<tChar>(*it));
1810 tSize szCounter = 0;
1811 while (*ptr !=
'\0' && szCounter < szEnd)
1893 while (*ptr !=
'\0')
2313 tBool bRetValue = 0;
2407 _In_z_ _Printf_format_string_
2412 __attribute__((format(printf, 1, 2)))
2415 va_list args, args_copy;
2416 va_start(args, strFormat);
2417 va_copy(args_copy, args);
2419 strBuffer.
SetBuffer(
static_cast<size_t>(::std::vsnprintf(
nullptr, 0, strFormat, args_copy)));
2435 template<
typename T>
2440 tSize szCurrentBuffer = 42;
2441 if (szMaxSize < szCurrentBuffer)
2443 szCurrentBuffer = szMaxSize;
2462 return strDestination.
Set(strSource, szLength);
2473template<
class sT,
class sT2>
2484 return ((str1.
Compare(str2)) < 0);
2493template<
class sT,
class sT2>
2541 return (str2.
Compare(str1) > 0);
2553 return (str2.
Compare(str1) < 0);
2565 return (str2.
Compare(str1) >= 0);
2577 return (str2.
Compare(str1) <= 0);
2614 return (str2.
Compare(str1) > 0);
2626 return (str2.
Compare(str1) < 0);
2638 return (str2.
Compare(str1) >= 0);
2650 return (str2.
Compare(str1) <= 0);
2686 return (str1.
Compare(str2) < 0);
2698 return (str1.
Compare(str2) > 0);
2710 return (str1.
Compare(str2) <= 0);
2722 return (str1.
Compare(str2) >= 0);
2734template<
class sT,
class sT2>
2771#define A_UTILS_DEFAULT_SIZE_OF_STRING 64
2777typedef stack_string_base < A_UTILS_DEFAULT_SIZE_OF_STRING, growinheap_out_of_range >
cStackString;
unsigned long tUInt32
type definition for unsigned integer values (32bit) (platform and compiler independent type).
signed long tInt32
type definition for signed integer values (32bit) (platform and compiler independent type).
char tChar
The tChar defines the type for platform character set (platform and compiler dependent type).
int64_t tInt64
type definition for signed integer values (64bit) (platform and compiler independent type).
float tFloat32
type definition for Float32 (32bit float values) (platform and compiler independent type).
void tVoid
The tVoid is always the definition for the void (non-type).
int tInt
type definition for signed integer value (platform and compiler dependent type).
double tFloat64
type definition for Float64 (64bit double values) (platform and compiler independent type).
bool tBool
The tBool defines the type for the Values tTrue and tFalse (platform and compiler dependent).
size_t tSize
type definition for a array size values, map size values etc.
uint64_t tUInt64
type definition for unsigned integer values (64bit) (platform and compiler independent type).
constexpr tSize g_npos
npos size declaration
static tInt CompareNoCase(const tChar *str1, const tChar *str2, tSize nPos, tSize nLength)
This function compares a cString object with another string using the generic-text function _tcsicmp.
static tBool IsInteger(const tChar *strToCheck, tSize nLength=InvalidPos)
Check if string content represents an integer value.
static tInt Compare(const tChar *str1, const tChar *str2, tSize nPos, tSize nLength)
This function compares two given strings using the generic-text function _tcscmp.
static const tChar * FromType(tInt32 i32Value, tChar *strBufferResult, tSize szBufferResult, const tChar *strFormat="")
This function creates a new cString object from a tInt32 value.
static tBool IsFloat(const tChar *strToCheck)
Check if string content represents a floating point value.
static tVoid HexToType(const tChar *strString, tInt64 &i64Value)
This function converts a hexadecimal string representation to an integer value.
static tVoid ToType(const tChar *strString, tInt32 &i32Value)
Escape control characters.
static tSize GetLength(const tChar *pcStr)
Returns the length of the string.
static tBool IsWhiteChar(tChar c)
This function checks if a given tChar value is a whitespace character.
static tBool IsOneOf(tChar cValue, const tChar *strTokenList)
Checks if the character is contained in the token list.
tBool IsEqual(const _myType &strCmp, tSize nPos=0, tSize nLength=InvalidPos) const
This function checks if the two strings are equal (case sensitive)
tVoid ToLower()
This function converts a cStringA object to a lowercase string.
string_base & operator=(const _myType &strValue)
The cString assignment (=) operator assigns a new value to the existing cString object.
tVoid Trim()
This function removes leading and trailing whitespace characters from a cStringA object.
static const tSize InvalidPos
_StorageType::const_reverse_iterator const_reverse_iterator
short typedefinition for cString reverse iterators
tInt32 AsInt32() const
This function converts the string to an integer value.
const tChar * GetPtr() const
This function returns the current string as an array of characters (c-style)
tBool IsNotEqualNoCase(const _myType &strCmp, tSize nPos=0, tSize nLength=InvalidPos) const
This function checks if the two strings are not equal (case insensitive)
tSize Find(tChar cToFind, tSize nStart=0) const
This function searches the cStringA object for the first match of the specified character.
tVoid LeftTrim(tBool bNumTrim=tFalse)
This function removes leading whitespace characters or leading zero characters from a cStringA object...
static _myType & Copy(_myType &strDestination, const _myType &strSource, tSize szLength=InvalidPos)
Copies the value of one StringObject to another Stringobject.
tChar & operator[](tSize nIdx)
array access operator
tInt64 HexToInt64() const
This function converts a hexadecimal string representation to an integer value.
tVoid ToType(tUInt32 &ui32Value) const
This function converts the string to an integer value.
tVoid ToType(tBool &bValue) const
This function converts the string to a boolean value.
static _myType FromType(tFloat64 f64Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
tBool IsEqualNoCase(const _myType &strCmp, tSize nPos=0, tSize nLength=InvalidPos) const
This function checks if the two strings are equal (case insensitive)
tVoid ToType(tFloat64 &f64Value) const
This function converts the string to a floating-point value.
string_base()
Constructor that initializes an empty cStringA object.
tSize Filter(const _myType &strCharList)
This function removes all occurrences of each character given in a token list.
tVoid RightTrim()
This function removes trailing whitespace characters from a cStringA object.
tBool EndsWith(const _myType &strEndsWith, const tBool bNoCase=tFalse) const
This function checks if the string ends with a given postfix.
_StorageType::reverse_iterator reverse_iterator
short typedefinition for cString reverse iterators
static _myType FromType(tInt64 i64Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
static const _myType Empty
string_base & operator=(_myType &&strValue)
The cString assignment (=) operator assigns a new value to the existing cString object.
_StorageType::iterator iterator
short typedefinition for cString iterators
_StorageType m_oStorageBuffer
tInt Compare(const tChar *strString, tSize nPos=0, tSize nLength=InvalidPos) const
This function compares a cStringA object with another string using the generic-text function _tcscmp.
tChar GetAt(tSize nIdx) const
You can think of a cStringA object as an array of characters.
tSize CountString(const _myType &strFind, tSize nStart=0) const
This counts the occurrences of a given substring in a string.
tSize GetMaxBufferSize() const
Return maximum size of string buffer.
const_iterator cbegin() const
Iterator to beginning.
_myType & Append(tChar c)
This function appends one character to the end of the cStringA object.
tBool IsNotEmpty() const
This function checks if the string object is not empty.
static _myType Repeat(tChar c, tSize nCount)
Creates a string from a repeated character.
tBool operator>(const tChar *pString) const
Checks if a string is lexicographically smaller than the cStringA object.
tSize Replace(const _myType &strOld, const _myType &strNew, tBool bReplaceAll=tTrue)
This function replaces one substring by another.
static _myType FromType(tBool bValue, const _myType &strFormat=Empty)
This function creates a new cString object from a boolean value.
tBool AsBool() const
This function converts the string to a boolean value.
tSize GetBufferSize() const
Get the size of the internal allocated string buffer.
tBool operator==(const _myType &strString) const
Checks if a string equals the cStringA object.
tUInt32 AsUInt32() const
This function converts the string to an integer value.
tFloat32 AsFloat32() const
This function converts the string to a floating-point value.
static _myType FromType(tFloat32 f32Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
tInt Compare(const _myType &strString, tSize nPos=0, tSize nLength=InvalidPos) const
This function compares a cStringA object with another string using the generic-text function _tcscmp.
string_base & operator=(const _StorageType &strValue)
The cString assignment (=) operator assigns a new value to the existing cString object.
string_base(const string_base< T2 > &strValue)
Constructor that initalizes an existing cString object with the spezified string value.
_myType & Append(const _myType &strString, tSize nLength=InvalidPos)
This function appends a string to the end of the cStringA object.
string_base< storageT > _myType
definition my type
tBool operator<(const tChar *pString) const
Checks if a string is lexicographically greater than the cStringA object.
_myType & Set(const _myType &strStringToSet, tSize nLength=InvalidPos)
Assigns a new value to a cStringA object.
tVoid Split(string_list_base< _myType > &lstSplittedResult, const _myType &strToken) const
This function splits up a single cStringA object into several parts using a token string.
static _myType ToStringFromType(T oValue, const _myType &strFormat)
This function creates a new cString object from a numeric value.
tSize Filter(tChar cChar)
This function removes all occurrences of a given character from a string.
_myType & Set(tChar c, tSize nCount)
Assigns a new value to a cStringA object.
tSize Replace(tChar cOld, tChar cNew, tBool bReplaceAll=tTrue)
This function replaces one character by another.
tVoid ToType(tInt64 &i64Value) const
This function converts the string to an integer value.
tInt CompareNoCase(const _myType &strString, tSize nPos=0, tSize nLength=InvalidPos) const
This function compares a cStringA object with another string using the generic-text function _tcsicmp...
tVoid ToUpper()
This function converts a cStringA object to an uppercase string.
static _myType FromType(tUInt64 ui64Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
_myType & Insert(const tChar *pToInsertString, tSize nPos, tSize nLength=InvalidPos)
This function inserts a string into the cStringA object.
reverse_iterator rend()
Reverse iterator to end.
tChar * GetBuffer()
This function returns the pointer to the data.
tInt64 AsInt64() const
This function converts the string to an integer value.
tSize GetLength() const
This function returns the number of characters in a cStringA object.
_myType Right(tSize nLength) const
Extracts the last (that is, rightmost) nLength characters from the cStringA object and returns a copy...
tBool operator!=(const _myType &strString) const
Checks if a string not equals the cStringA object.
virtual ~string_base()
Destructor.
const_reverse_iterator crbegin() const
Reverse iterator to beginning.
string_base(const _StorageType &strValue)
Constructor that initalizes an existing cString object with the spezified string value.
tBool IsInteger() const
Check if string content represents an integer value.
const tChar & operator[](tSize nIdx) const
array access operator
static _myType FromType(tInt32 i32Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
_myType SubString(tSize nPos, tSize nLength=InvalidPos) const
This function extracts a substring of length nLength characters from the cStringA object,...
static _myType Format(const value_type *strFormat,...)
Write formatted data to a string.
const_iterator cend() const
Iterator to end.
tVoid ToType(tInt32 &i32Value) const
This function converts the string to an integer value.
tBool operator<=(const tChar *pString) const
Checks if a string is lexicographically greater than or equal to the cStringA object.
_myType Mid(tSize nPos, tSize nLength=InvalidPos) const
This function extracts a substring of length nLength characters from the cStringA object,...
_myType & Delete(tSize nPos, tSize nLength=InvalidPos)
This function deletes a substring of length nLength characters from the cStringA object,...
tVoid Clear()
Makes this cStringA object an empty string and frees memory as appropriate.
_StorageType::const_iterator const_iterator
short typedefinition for cString iterators
_myType & Set(const tChar *pString, tSize nLength=InvalidPos)
Assigns a new value to a cStringA object.
static _myType FromType(tUInt32 ui32Value, const _myType &strFormat=Empty)
This function creates a new cString object from a numeric value.
tBool StartsWith(const _myType &strStartsWith, const tBool bNoCase=tFalse) const
This function checks if the string starts with a given prefix.
tVoid Split(string_list_base< _myType > &lstSplittedResult, tChar cToken) const
This function splits up a single cStringA object into several parts using a token character.
tVoid NumTrim()
This function removes whitespace and redundant zero characters from a cStringA object.
tBool IsFloat() const
Check if string content represents a floating point value.
_StorageType::value_type value_type
definition of value type
tBool IsNotEqual(const _myType &strCmp, tSize nPos=0, tSize nLength=InvalidPos) const
This function checks if the two strings are not equal (case sensitive)
tSize RFind(tChar cChar, tSize nStart=0) const
This function searches the cStringA object for the last match of the specified character.
tBool IsEmpty() const
This function checks if the string object is empty.
tVoid HexToType(tInt64 &i64Value) const
This function converts a hexadecimal string representation to an integer value.
tVoid SetAt(tSize nIdx, tChar c)
The SetAt member function sets a single character at a specified position.
string_base & operator=(const tChar &strValue)
The cString assignment (=) operator assigns a new value to the existing cString object.
string_base(const _myType &strValue)
Constructor that initalizes an existing cString object with the spezified string value.
tVoid DropQuotes()
This function removes quotes from a cStringA object.
const_reverse_iterator crend() const
Reverse iterator to end.
string_base & operator=(const string_base< T2 > &strValue)
Constructor that initalizes an existing cString object with the spezified string value.
tBool IsNumeric() const
Check if string content represents a numeric value.
string_base(const tChar *strValue)
Constructor that initalizes an existing cString object with the spezified string value.
iterator end()
Iterator to end.
tSize SetBuffer(tSize szSize)
Sets or resizes the internal string buffer.
reverse_iterator rbegin()
Reverse iterator to beginning.
string_base(_myType &&strValue)
Constructor that initalizes an existing cString object with the spezified string value.
_myType & Unescape()
Escape control characters.
_myType & Insert(const _myType &strToInsertString, tSize nPos, tSize nLength=InvalidPos)
This function inserts a string into the cStringA object.
tSize FindNotToken(const _myType &strTokenList, tSize nStart=0) const
This function searches a string for the first character that matches none of the characters contained...
tBool operator==(const tChar *pString) const
Checks if a string equals the cStringA object.
string_base & operator=(const tChar *strValue)
The cString assignment (=) operator assigns a new value to the existing cString object.
iterator begin()
Iterator to beginning.
_myType & Escape()
Escape control characters.
string_base(const tChar &strValue)
Constructor that initalizes an existing cString object with the spezified string value.
tBool operator>=(const tChar *pString) const
Checks if a string is lexicographically smaller than or equal to the cStringA object.
string_base(const tChar *strValue, tSize szLength)
Constructor that initalizes an existing cString object with the spezified string value.
tVoid ToType(tFloat32 &f32Value) const
This function converts the string to a floating-point value.
tBool operator>=(const _myType &strString) const
Checks if a string is lexicographically smaller than or equal to the cStringA object.
const _myType & operator+=(const _myType &strString)
The += concatenation operator joins characters to the end of this string.
tUInt64 AsUInt64() const
This function converts the string to an integer value.
tVoid SplitToken(string_list_base< _myType > &lstList, const _myType &strTokenList) const
Split string using a token list.
tFloat64 AsFloat64() const
This function converts the string to a floating-point value.
tBool operator<=(const _myType &strString) const
Checks if a string is lexicographically greater than or equal to the cStringA object.
_myType Left(tSize nLength) const
Extracts the first (that is, leftmost) nLength characters from the cStringA object and returns a copy...
tVoid ToType(tUInt64 &ui64Value) const
This function converts the string to an integer value.
storageT _StorageType
definition storage type
tBool operator!=(const tChar *pString) const
Checks if a string does not equal the cStringA object.
tSize FindToken(const _myType &strTokenList, tSize nStart=0) const
This function searches a string for the first character that matches any character contained in a tok...
tSize Find(const _myType &strStringToFind, tSize nStart=0, const tBool bNoCase=tFalse) const
This function searches the cStringA object for the first match of a substring.
tResult Append(const storageT &strString)
This function appends one string to the list.
tVoid Clear()
This function cleans up the list and frees all allocated memory blocks.
#define tFalse
Value for tBool.
#define tTrue
Value for tBool.
ADTF A_UTIL Namespace - Within adtf this is used as util or adtf_util.
bool operator>=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater or equal to operator between iterators.
bool operator>(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define greater than operator between iterators.
string_base_no_case_compare_func< cStackString, cStackString > cStringNoCaseCompareFunc
Compare functor for the cStackString.
bool operator<(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser than operator between iterators.
string_base< cStackString > cString
cString implementation for a stack string which works on stack if string is lower than A_UTILS_DEFAUL...
stack_string_base< A_UTILS_DEFAULT_SIZE_OF_STRING, growinheap_out_of_range > cStackString
cStackString implementation for a stack string which works on stack if string is lower than A_UTILS_D...
tBool operator!=(const cMultiArrayIndex &o_A, const cMultiArrayIndex &o_B)
Comparison operator.
tBool operator==(const cMultiArrayIndex &o_A, const cMultiArrayIndex &o_B)
Comparison operator.
bool operator<=(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define lesser or equal to operator between iterators.
string_base_compare_func< cStackString, cStackString > cStringCompareFunc
Compare functor for the cStackString.
simple_pointer_iterator< T >::difference_type operator+(const simple_pointer_iterator< T > &r1, const simple_pointer_iterator< T > &r2)
Define arithmetic + operation between iterators.
Compare function for stl container e.g.
tBool operator()(const string_base< sT > &str1, const string_base< sT2 > &str2) const
String compare function.
Compare function for stl container e.g.
tBool operator()(const string_base< sT > &str1, const string_base< sT2 > &str2) const
String compare function.