util
Classes
| Name | Description |
|---|---|
Version | Semantic version number with major, minor, and patch fields. |
Functions
| Return | Name | Description |
|---|---|---|
std::string | format | Printf-style string formatting for POD types. |
void | toUnderscore | Replaces all non-alphanumeric characters in str with underscores and converts to lowercase. |
bool | isNumber | Returns true if str consists entirely of digit characters. |
bool | endsWith | Returns true if str ends with the given suffix. |
void | removeSpecialCharacters | Replaces non-alphanumeric characters. Removes all non-alphanumeric characters from str in place. |
void | replaceSpecialCharacters | Replaces all non-alphanumeric characters in str with with in place. |
bool | tryParseHex | Attempts to parse a hex string into an unsigned integer. |
unsigned | parseHex | Parses a hex string into an unsigned integer. |
std::string | dumpbin | Formats the binary contents of data as a hex+ASCII dump string. |
bool | compareVersion | Compares two dot-separated version strings. |
bool | matchNodes | Checks whether node matches xnode by splitting both on delim and comparing element-wise. |
bool | matchNodes | Checks whether params matches xparams element-wise. |
std::string | memAddress | Returns the memory address of ptr as a hex string (e.g. "0x7f3a2b10c0"). |
std::string | itostr | Converts an integer (or any stream-insertable type) to its string representation. |
T | strtoi | Parses a string into integer type T using std::istringstream. Returns 0 if parsing fails. Ensure T has sufficient range for the value. |
uint32_t | randomNumber | Generates a 31-bit pseudo random number using the internal Random instance. |
std::string | randomString | Generates a random alphanumeric string of the given length. |
std::string | randomBinaryString | Generates a random binary string of the given byte length. |
void | split | Splits str on the delimiter string and appends tokens to elems. |
std::vector< std::string > | split | Splits str on the delimiter string and returns the tokens as a vector. |
void | split | Splits str on the delimiter character and appends tokens to elems. |
std::vector< std::string > | split | Splits str on the delimiter character and returns the tokens as a vector. |
S & | replaceInPlace | Replace all occurrences of from in str with to, starting at position start. Modifies and returns str in place. from must not be empty. |
S & | replaceInPlace | Replace all occurrences of from in str with to, starting at position start. C-string overload. Modifies and returns str in place. |
S | replace | Replace all occurences of from (which must not be the empty string) in str with to, starting at position start. |
S | replace | Returns a copy of str with all occurrences of from replaced by to (C-string overload). |
S | trimLeft | Returns a copy of str with all leading whitespace removed. |
S & | trimLeftInPlace | Removes all leading whitespace in str. |
S | trimRight | Returns a copy of str with all trailing whitespace removed. |
S & | trimRightInPlace | Removes all trailing whitespace in str. |
S | trim | Returns a copy of str with all leading and trailing whitespace removed. |
S & | trimInPlace | Removes all leading and trailing whitespace in str. |
S | toUpper | Returns a copy of str containing all upper-case characters. |
S & | toUpperInPlace | Replaces all characters in str with their upper-case counterparts. |
S | toLower | Returns a copy of str containing all lower-case characters. |
S & | toLowerInPlace | Replaces all characters in str with their lower-case counterparts. |
int | icompare inline | Case-insensitive string comparison (locale-independent, ASCII only). |
std::streamsize | copyStreamUnbuffered | Copies all bytes from istr to ostr one byte at a time (no internal buffer). |
std::streamsize | copyStream | Copies all bytes from istr to ostr using an internal buffer. |
std::streamsize | copyToString | Reads all bytes from istr and appends them to str. |
void | clearList inline | Delete all elements from a list of pointers. |
void | clearDeque inline | Delete all elements from a deque of pointers. |
void | clearVector inline | Delete all elements from a vector of pointers. |
void | clearMap inline | Delete all associated values from a map (not the key elements). |
format
std::string format(const char * fmt, ...)Defined in src/base/include/icy/util.h:40
Printf-style string formatting for POD types.
Returns
Formatted string.
Parameters
| Parameter | Type | Description |
|---|---|---|
fmt | const char * | printf format string. |
toUnderscore
void toUnderscore(std::string & str)Defined in src/base/include/icy/util.h:44
Replaces all non-alphanumeric characters in str with underscores and converts to lowercase.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string & | String to transform in place. |
isNumber
bool isNumber(std::string_view str)Defined in src/base/include/icy/util.h:49
Returns true if str consists entirely of digit characters.
Returns
true if every character in str is a decimal digit.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to test. |
endsWith
bool endsWith(std::string_view str, std::string_view suffix)Defined in src/base/include/icy/util.h:55
Returns true if str ends with the given suffix.
Returns
true if str ends with suffix.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to test. |
suffix | std::string_view | Suffix to look for. |
removeSpecialCharacters
void removeSpecialCharacters(std::string & str, bool allowSpaces = false)Defined in src/base/include/icy/util.h:61
Replaces non-alphanumeric characters. Removes all non-alphanumeric characters from str in place.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string & | String to modify. |
allowSpaces | bool | If true, ASCII spaces are preserved. |
replaceSpecialCharacters
void replaceSpecialCharacters(std::string & str, char with = '_', bool allowSpaces = false)Defined in src/base/include/icy/util.h:67
Replaces all non-alphanumeric characters in str with with in place.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string & | String to modify. |
with | char | Replacement character (default: '_'). |
allowSpaces | bool | If true, ASCII spaces are preserved rather than replaced. |
tryParseHex
bool tryParseHex(std::string_view s, unsigned & value)Defined in src/base/include/icy/util.h:74
Attempts to parse a hex string into an unsigned integer.
Returns
true if parsing succeeded, false otherwise.
Parameters
| Parameter | Type | Description |
|---|---|---|
s | std::string_view | Hex string (with or without 0x prefix). |
value | unsigned & | Output: parsed value on success. |
parseHex
unsigned parseHex(std::string_view s)Defined in src/base/include/icy/util.h:80
Parses a hex string into an unsigned integer.
Returns
Parsed value.
Parameters
| Parameter | Type | Description |
|---|---|---|
s | std::string_view | Hex string (with or without 0x prefix). |
Exceptions
| Exception | Description |
|---|---|
std::invalid_argument | if the string is not valid hex. |
dumpbin
std::string dumpbin(const char * data, size_t len)Defined in src/base/include/icy/util.h:86
Formats the binary contents of data as a hex+ASCII dump string.
Returns
Multi-line hex dump string.
Parameters
| Parameter | Type | Description |
|---|---|---|
data | const char * | Pointer to the buffer to dump. |
len | size_t | Number of bytes to dump. |
compareVersion
bool compareVersion(std::string_view l, std::string_view r)Defined in src/base/include/icy/util.h:92
Compares two dot-separated version strings.
Returns
true if l is strictly greater than r, false if l is equal or less.
Parameters
| Parameter | Type | Description |
|---|---|---|
l | std::string_view | Left (local) version string. |
r | std::string_view | Right (remote) version string. |
matchNodes
bool matchNodes(std::string_view node, std::string_view xnode, std::string_view delim = "\r\n")Defined in src/base/include/icy/util.h:99
Checks whether node matches xnode by splitting both on delim and comparing element-wise.
Returns
true if all elements of node match the corresponding elements of xnode.
Parameters
| Parameter | Type | Description |
|---|---|---|
node | std::string_view | Node list string to test. |
xnode | std::string_view | Expected node list pattern. |
delim | std::string_view | Delimiter used to split both strings (default: "\r\n"). |
matchNodes
bool matchNodes(const std::vector< std::string > & params, const std::vector< std::string > & xparams)Defined in src/base/include/icy/util.h:106
Checks whether params matches xparams element-wise.
Returns
true if every element of params matches the corresponding element of xparams.
Parameters
| Parameter | Type | Description |
|---|---|---|
params | const std::vector< std::string > & | Parameter list to test. |
xparams | const std::vector< std::string > & | Expected parameter list. |
memAddress
std::string memAddress(const void * ptr)Defined in src/base/include/icy/util.h:112
Returns the memory address of ptr as a hex string (e.g. "0x7f3a2b10c0").
Returns
Hex string representation of the pointer value.
Parameters
| Parameter | Type | Description |
|---|---|---|
ptr | const void * | Pointer whose address to format. |
itostr
template<typename T> std::string itostr(const T & t)Defined in src/base/include/icy/util.h:124
Converts an integer (or any stream-insertable type) to its string representation.
Returns
String representation of t.
Parameters
| Parameter | Type | Description |
|---|---|---|
t | const T & | Value to convert. |
strtoi
template<typename T> T strtoi(std::string_view s)Defined in src/base/include/icy/util.h:137
Parses a string into integer type T using std::istringstream. Returns 0 if parsing fails. Ensure T has sufficient range for the value.
Returns
Parsed value, or 0 on failure.
Parameters
| Parameter | Type | Description |
|---|---|---|
s | std::string_view | String to parse. |
randomNumber
uint32_t randomNumber()Defined in src/base/include/icy/util.h:152
Generates a 31-bit pseudo random number using the internal Random instance.
Returns
Pseudo random uint32_t value.
randomString
std::string randomString(int size)Defined in src/base/include/icy/util.h:157
Generates a random alphanumeric string of the given length.
Returns
Random string of length size.
Parameters
| Parameter | Type | Description |
|---|---|---|
size | int | Number of characters to generate. |
randomBinaryString
std::string randomBinaryString(int size, bool doBase64 = false)Defined in src/base/include/icy/util.h:163
Generates a random binary string of the given byte length.
Returns
Random binary string, optionally base64-encoded.
Parameters
| Parameter | Type | Description |
|---|---|---|
size | int | Number of random bytes to generate. |
doBase64 | bool | If true, returns the bytes as a base64-encoded string. |
split
void split(std::string_view str, std::string_view delim, std::vector< std::string > & elems, int limit = -1)Defined in src/base/include/icy/util.h:175
Splits str on the delimiter string and appends tokens to elems.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to split. |
delim | std::string_view | Delimiter string. |
elems | std::vector< std::string > & | Output vector; tokens are appended to it. |
limit | int | Maximum number of splits (-1 for unlimited). |
split
std::vector< std::string > split(std::string_view str, std::string_view delim, int limit = -1)Defined in src/base/include/icy/util.h:182
Splits str on the delimiter string and returns the tokens as a vector.
Returns
Vector of token strings.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to split. |
delim | std::string_view | Delimiter string. |
limit | int | Maximum number of splits (-1 for unlimited). |
split
void split(std::string_view str, char delim, std::vector< std::string > & elems, int limit = -1)Defined in src/base/include/icy/util.h:189
Splits str on the delimiter character and appends tokens to elems.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to split. |
delim | char | Delimiter character. |
elems | std::vector< std::string > & | Output vector; tokens are appended to it. |
limit | int | Maximum number of splits (-1 for unlimited). |
split
std::vector< std::string > split(std::string_view str, char delim, int limit = -1)Defined in src/base/include/icy/util.h:196
Splits str on the delimiter character and returns the tokens as a vector.
Returns
Vector of token strings.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | std::string_view | String to split. |
delim | char | Delimiter character. |
limit | int | Maximum number of splits (-1 for unlimited). |
replaceInPlace
template<class S> S & replaceInPlace(S & str, const S & from, const S & to, typename S::size_type start = 0)Defined in src/base/include/icy/util.h:206
Replace all occurrences of from in str with to, starting at position start. Modifies and returns str in place. from must not be empty.
replaceInPlace
template<class S> S & replaceInPlace(S & str, const typename S::value_type * from, const typename S::value_type * to, typename S::size_type start = 0)Defined in src/base/include/icy/util.h:231
Replace all occurrences of from in str with to, starting at position start. C-string overload. Modifies and returns str in place.
replace
template<class S> S replace(const S & str, const S & from, const S & to, typename S::size_type start = 0)Defined in src/base/include/icy/util.h:258
Replace all occurences of from (which must not be the empty string) in str with to, starting at position start.
replace
template<class S> S replace(const S & str, const typename S::value_type * from, const typename S::value_type * to, typename S::size_type start = 0)Defined in src/base/include/icy/util.h:273
Returns a copy of str with all occurrences of from replaced by to (C-string overload).
Returns
New string with all replacements applied.
Parameters
| Parameter | Type | Description |
|---|---|---|
str | const S & | Source string. |
from | const typename S::value_type * | Substring to search for; must not be empty. |
to | const typename S::value_type * | Replacement string. |
start | typename S::size_type | Position in str at which to begin searching (default: 0). |
trimLeft
template<class S> S trimLeft(const S & str)Defined in src/base/include/icy/util.h:289
Returns a copy of str with all leading whitespace removed.
trimLeftInPlace
template<class S> S & trimLeftInPlace(S & str)Defined in src/base/include/icy/util.h:301
Removes all leading whitespace in str.
trimRight
template<class S> S trimRight(const S & str)Defined in src/base/include/icy/util.h:315
Returns a copy of str with all trailing whitespace removed.
trimRightInPlace
template<class S> S & trimRightInPlace(S & str)Defined in src/base/include/icy/util.h:326
Removes all trailing whitespace in str.
trim
template<class S> S trim(const S & str)Defined in src/base/include/icy/util.h:340
Returns a copy of str with all leading and trailing whitespace removed.
trimInPlace
template<class S> S & trimInPlace(S & str)Defined in src/base/include/icy/util.h:355
Removes all leading and trailing whitespace in str.
toUpper
template<class S> S toUpper(const S & str)Defined in src/base/include/icy/util.h:378
Returns a copy of str containing all upper-case characters.
toUpperInPlace
template<class S> S & toUpperInPlace(S & str)Defined in src/base/include/icy/util.h:392
Replaces all characters in str with their upper-case counterparts.
toLower
template<class S> S toLower(const S & str)Defined in src/base/include/icy/util.h:406
Returns a copy of str containing all lower-case characters.
toLowerInPlace
template<class S> S & toLowerInPlace(S & str)Defined in src/base/include/icy/util.h:420
Replaces all characters in str with their lower-case counterparts.
icompare
inline
inline int icompare(std::string_view a, std::string_view b)Defined in src/base/include/icy/util.h:441
Case-insensitive string comparison (locale-independent, ASCII only).
Returns
Negative if a < b, zero if a == b, positive if a > b.
Parameters
| Parameter | Type | Description |
|---|---|---|
a | std::string_view | First string. |
b | std::string_view | Second string. |
copyStreamUnbuffered
std::streamsize copyStreamUnbuffered(std::istream & istr, std::ostream & ostr)Defined in src/base/include/icy/util.h:467
Copies all bytes from istr to ostr one byte at a time (no internal buffer).
Returns
Total number of bytes copied.
Parameters
| Parameter | Type | Description |
|---|---|---|
istr | std::istream & | Source stream. |
ostr | std::ostream & | Destination stream. |
copyStream
std::streamsize copyStream(std::istream & istr, std::ostream & ostr, size_t bufferSize = 8192)Defined in src/base/include/icy/util.h:474
Copies all bytes from istr to ostr using an internal buffer.
Returns
Total number of bytes copied.
Parameters
| Parameter | Type | Description |
|---|---|---|
istr | std::istream & | Source stream. |
ostr | std::ostream & | Destination stream. |
bufferSize | size_t | Internal buffer size in bytes (default: 8192). |
copyToString
std::streamsize copyToString(std::istream & istr, std::string & str, size_t bufferSize = 8192)Defined in src/base/include/icy/util.h:482
Reads all bytes from istr and appends them to str.
Returns
Total number of bytes read.
Parameters
| Parameter | Type | Description |
|---|---|---|
istr | std::istream & | Source stream. |
str | std::string & | Output string to append data to. |
bufferSize | size_t | Internal buffer size in bytes (default: 8192). |
clearList
inline
template<typename Val> inline void clearList(std::list< Val * > & L)Defined in src/base/include/icy/util.h:569
Delete all elements from a list of pointers.
clearDeque
inline
template<typename Val> inline void clearDeque(std::deque< Val * > & D)Defined in src/base/include/icy/util.h:578
Delete all elements from a deque of pointers.
clearVector
inline
template<typename Val> inline void clearVector(std::vector< Val * > & V)Defined in src/base/include/icy/util.h:587
Delete all elements from a vector of pointers.
clearMap
inline
template<typename Key, typename Val> inline void clearMap(std::map< Key, Val * > & M)Defined in src/base/include/icy/util.h:596
Delete all associated values from a map (not the key elements).
