CRM64Pro GDK v0.13.0
A free cross-platform game development kit built on top of SDL 3.0
Loading...
Searching...
No Matches

Description

Tool interface providing generic utility methods [v25.12.0].

Overview

The Tool interface provides a collection of generic and useful utility methods for common operations including hashing, encryption, random number generation, file management and string manipulation.

Key features

  • Hashing algorithms: CRC32 and high-performance xxHash
  • Simple encryption: Fast XOR-based buffer encryption/decryption
  • Random number generators: Multiple PRNG implementations with different characteristics
  • File utilities: OS-level file management operations
  • String utilities: Conversion and manipulation methods

Hashing algorithms

CRC32Standard cyclic redundancy check algorithm
xxHashHigh-performance hashing algorithm, approximately 10 times faster than CRC32

Pseudorandom number generators

Two PRNG implementations are available with different performance and memory trade-offs:

MWCMultiply-with-carry algorithm. Period: 2^131104. Very fast with 16KB memory footprint
WELL512Well Equidistributed Long-period Linear algorithm. Period: 2^512. Fast with only 64 bytes memory footprint

Utility methods

EncryptionFast XOR of memory buffers for simple encryption/decryption
MathRound values to specified precision
File managementOS-level operations: check file existence, verify file extensions, etc.
String-zeroNull-terminated string manipulation methods
String conversionString to/from integer conversion methods
String/VectorVector string to file and string to vector string methods

Best practices

  • Use xxHash instead of CRC32 when performance is critical and cryptographic strength is not required
  • Choose WELL512 for memory-constrained scenarios; use MWC when maximum period length is needed
  • Use the file management methods for cross-platform file operations
  • Prefer the built-in string conversion methods over standard library alternatives for consistency
  • Access the interface exclusively through Main::ITool()
Note
The Tool interface is a singleton, automatically created once Main is instantiated. You can get a reference to this interface using Main::ITool() method.
The Tool interface is automatically released when Main::Terminate() is called. At this time, any resource still loaded will be released, avoiding resource leaks.

Classes

class  CRM64Pro::Tool
 Tool class. More...

Macros

#define TMBB_OK   1
#define TMBB_CANCEL   2
#define TMBB_YES   4
#define TMBB_NO   8

Enumerations

enum  CRM64Pro::eToolMBT { CRM64Pro::TMBT_EMPTY = 0 , CRM64Pro::TMBT_ERROR = 1 , CRM64Pro::TMBT_WARNING = 2 , CRM64Pro::TMBT_INFO = 4 }
 Tool MessageBox type. More...

Functions

Sint32 CRM64Pro::Tool::info (Sint32 iMode=0)
 Request Tool Interface information.
Uint32 CRM64Pro::Tool::CRC32 (const void *pBuffer, size_t iSize, Uint32 iPreviousCRC32=0)
 CRC32 checksum of a memory buffer.
Uint32 CRM64Pro::Tool::CRC32 (const string &sFile)
 CRC32 checksum of a file.
Uint32 CRM64Pro::Tool::xxHash (const void *pBuffer, size_t iSize, Uint32 iSeed)
 xxHash 32bits checksum of a memory buffer.
void * CRM64Pro::Tool::xxHashInit (Uint32 iSeed)
 Initialize xxHash 32bits for being used in multiple memory buffers.
Sint32 CRM64Pro::Tool::xxHashUpdate (void *pState, const void *pBuffer, size_t iSize)
 Feed with a new memory buffer the xxHash 32bits.
Uint32 CRM64Pro::Tool::xxHashDigest (void *pState)
 Get current xxHash 32bits checksum for the accumulative memory buffers.
Sint32 CRM64Pro::Tool::xxHashEnd (void *pState)
 Finalize xxHash 32bits used in multiple memory buffers.
Sint32 CRM64Pro::Tool::XOR (void *pSrc, size_t iSize, Uint8 cKey)
 XOR of a memory buffer by a key(8bits).
Sint32 CRM64Pro::Tool::decodeBase64 (const string &sInput, string &sOutput, Uint32 iCleanInput=0)
 Decode a base64 string.
Sint32 CRM64Pro::Tool::decompressZlib (const void *pCompressed, Sint32 iCompressedSize, void *pUncompressed, Sint32 iUncompressedSize)
 Decompress a zlib compressed data block.
void CRM64Pro::Tool::randSeedMWC (Uint32 iSeed)
 Initializes the Multiply-with-carry(MWC) random number generator with a seed.
Uint32 CRM64Pro::Tool::randMWC ()
 Generates a random 32bits integer using Multiply-with-carry(MWC) algorithm.
double CRM64Pro::Tool::randRealMWC ()
 Generates a random 64bits real number using Multiply-with-carry(MWC) algorithm.
void CRM64Pro::Tool::randSeedWELL (Uint32 iSeed, Uint32 *pSeedTable=nullptr)
 Initializes the WELL512 random number generator with a seed.
Uint32 CRM64Pro::Tool::randWELL (Uint32 *pSeedState=nullptr, Uint32 *pSeedTable=nullptr)
 Generates a random 32bits integer using WELL512 algorithm.
double CRM64Pro::Tool::randRealWELL (Uint32 *pSeedState=nullptr, Uint32 *pSeedTable=nullptr)
 Generates a random 64bits real number using WELL512 algorithm.
float CRM64Pro::Tool::round (const float fNum)
 Round a float value.
double CRM64Pro::Tool::round (const double dNum)
 Round a double value.
Sint32 CRM64Pro::Tool::dirExists (const string &sPath)
 Check if a directory exists.
Sint32 CRM64Pro::Tool::dirCreate (const string &sPath)
 Create a directory.
Sint32 CRM64Pro::Tool::fileExists (const string &sPath)
 Check if a file exists.
Sint32 CRM64Pro::Tool::fileRemove (const string &sPath)
 Remove a file (with wildcard support).
Sint32 CRM64Pro::Tool::fileGetAbsolutePath (const string &sPath, string &sAbsolutePath)
 Get the absolute path of a given relative path.
Sint32 CRM64Pro::Tool::fileGetExePath (string &sPath)
 Get the executable path.
Sint32 CRM64Pro::Tool::fileGetName (const string &sPath, string &sFileName)
 Get the filename.
Sint32 CRM64Pro::Tool::fileGetDir (const string &sPath, string &sDirName)
 Get the directory.
Sint32 CRM64Pro::Tool::fileGetExtension (const string &sPath, string &sExtensionName)
 Get the extension.
Sint32 CRM64Pro::Tool::fileCheckExtension (const string &sPath, const string &sExt)
 Check if a filename contains a given extension.
Sint32 CRM64Pro::Tool::fileOpenDialog (const string &sTitle, const char *szFilter, string &sSelectedFile)
 Create a native file open dialog.
Sint32 CRM64Pro::Tool::fileSaveDialog (const string &sTitle, const char *szFilter, string &sSelectedFile)
 Create a native file save dialog.
Sint32 CRM64Pro::Tool::messageBox (const string &sTitle, const string &sMsg, Uint32 iButtons=TMBB_OK, eToolMBT eTMBT=TMBT_INFO, Sint32 iTTL=0, Sint32 idCustomPanel=-1, Sint32 idScreen=-1)
 Create a messagebox.
Sint32 CRM64Pro::Tool::szCopy (char *szDst, const char *szSrc, size_t iSize)
 Copy a string-zero avoiding buffer overflow.
Sint32 CRM64Pro::Tool::getDateStamp (string &sString)
 Get current date+time stamp.
Sint32 CRM64Pro::Tool::strCompare (const string &sOne, const string &sTwo)
 Case insensitive string comparation.
Sint32 CRM64Pro::Tool::strToLowerCase (string &sString)
 Convert the string to lower case.
Sint32 CRM64Pro::Tool::strToUpperCase (string &sString)
 Convert the string to upper case.
Sint32 CRM64Pro::Tool::strTovStr (const string sString, const string sSplit, vector< string > &vString)
 Split a string into a vector of string given a split string.
Sint32 CRM64Pro::Tool::strDecToInt (const string sString)
 Convert a given string with a number in decimal format to a Sint32 number.
Sint32 CRM64Pro::Tool::intToStrDec (Sint32 iNum, string &sString)
 Convert a 32bits signed integer to a string in decimal format.
Sint32 CRM64Pro::Tool::strHexToInt (const string sString)
 Convert a given string with a number in hexdecimal format to a Sint32 number.
Sint32 CRM64Pro::Tool::intToStrHex (Sint32 iNum, string &sString)
 Convert a 32bits signed integer to a string in hexadecimal format.
Sint32 CRM64Pro::Tool::vStrToFile (const vector< string > &vString, const string &sFileName)
 Save a vector<string> to a filename.
Sint32 CRM64Pro::Tool::fileTovStr (vector< string > &vString, const string &sFileName)
 Load lines of a filename into a vector<string>.

Macro Definition Documentation

◆ TMBB_OK

#define TMBB_OK   1

MessageBox Button OK. 'iButtons' parameter in Tools::messageBox().

◆ TMBB_CANCEL

#define TMBB_CANCEL   2

MessageBox Button Cancel. 'iButtons' parameter in Tools::messageBox().

◆ TMBB_YES

#define TMBB_YES   4

MessageBox Button Yes. 'iButtons' parameter in Tools::messageBox().

◆ TMBB_NO

#define TMBB_NO   8

MessageBox Button No. 'iButtons' parameter in Tools::messageBox().

Enumeration Type Documentation

◆ eToolMBT

Tool MessageBox type.

Enumerator
TMBT_EMPTY 

MessageBox type empty. 'eTMBT' parameter in Tools:messageBox().

TMBT_ERROR 

MessageBox type error. 'eTMBT' parameter in Tools::messageBox().

TMBT_WARNING 

MessageBox type warning. 'eTMBT' parameter in Tools::messageBox().

TMBT_INFO 

MessageBox type information. 'eTMBT' parameter in Tools::messageBox().

Function Documentation

◆ info()

Sint32 CRM64Pro::Tool::info ( Sint32 iMode = 0)

Request Tool Interface information.

Writes information to the default log.

Parameters
iModeunused for the time being.
Returns
0 on success, or a negative error code on failure.

◆ CRC32() [1/2]

Uint32 CRM64Pro::Tool::CRC32 ( const void * pBuffer,
size_t iSize,
Uint32 iPreviousCRC32 = 0 )

CRC32 checksum of a memory buffer.

This algorithm takes approximately 8 CPU cycles per byte.

Parameters
pBufferpointer to the memory buffer.
iSizesize in bytes of the memory buffer.
iPreviousCRC32supports rolling mechanism: if you already have a buffer and its CRC32, you can append new data and calculate the updated CRC32 using your original value as seed. Default 0.
Returns
CRC32 checksum of the memory buffer.

◆ CRC32() [2/2]

Uint32 CRM64Pro::Tool::CRC32 ( const string & sFile)

CRC32 checksum of a file.

Internally, it calls to memory buffer CRC32() method.

Parameters
sFilestring containing the [directory]+filename+[extension].
Returns
CRC32 checksum of the file.

◆ xxHash()

Uint32 CRM64Pro::Tool::xxHash ( const void * pBuffer,
size_t iSize,
Uint32 iSeed )

xxHash 32bits checksum of a memory buffer.

This algorithm is very fast(16x faster than CRC32) and close to the memory bandwidth limit.

Parameters
pBufferpointer to the memory buffer.
iSizesize in bytes of the memory buffer.
iSeedcan be used to alter the result predictably.
Returns
xxHash 32bits checksum of the memory buffer.

◆ xxHashInit()

void * CRM64Pro::Tool::xxHashInit ( Uint32 iSeed)

Initialize xxHash 32bits for being used in multiple memory buffers.

Parameters
iSeedcan be used to alter the result predictably.
Returns
a void* state which hold internal variables, do not modify it!.
Note
This state must be destroyed calling ton xxHashEnd()

◆ xxHashUpdate()

Sint32 CRM64Pro::Tool::xxHashUpdate ( void * pState,
const void * pBuffer,
size_t iSize )

Feed with a new memory buffer the xxHash 32bits.

Parameters
pStatea void* state previously created by xxHashInit().
pBufferpointer to the memory buffer.
iSizesize in bytes of the memory buffer.
Returns
0 on success, or a negative error code on failure.

◆ xxHashDigest()

Uint32 CRM64Pro::Tool::xxHashDigest ( void * pState)

Get current xxHash 32bits checksum for the accumulative memory buffers.

Parameters
pStatea void* state created by xxHashInit() and used on xxHashUpdate().
Returns
xxHash 32bits checksum of the memory buffers.

◆ xxHashEnd()

Sint32 CRM64Pro::Tool::xxHashEnd ( void * pState)

Finalize xxHash 32bits used in multiple memory buffers.

Parameters
pStatea void* state created by xxHashInit().
Returns
0 on success, or a negative error code on failure.

◆ XOR()

Sint32 CRM64Pro::Tool::XOR ( void * pSrc,
size_t iSize,
Uint8 cKey )

XOR of a memory buffer by a key(8bits).

It can be used for simple encryption/decryption tasks.

Parameters
pSrcpointer to the memory buffer.
iSizesize in bytes of the memory buffer.
cKeyunsigned char value representing the key.
Returns
0 on success, or a negative error code on failure.

◆ decodeBase64()

Sint32 CRM64Pro::Tool::decodeBase64 ( const string & sInput,
string & sOutput,
Uint32 iCleanInput = 0 )

Decode a base64 string.

Parameters
sInputstring containing the base64 encoded string.
sOutputstring containing the decoded base64 string.
iCleanInputset to 1 for cleaning the sInput string of non base64 characters before to try to decode it. By default it is set to 0.
Returns
0 on success, or a negative error code on failure.

◆ decompressZlib()

Sint32 CRM64Pro::Tool::decompressZlib ( const void * pCompressed,
Sint32 iCompressedSize,
void * pUncompressed,
Sint32 iUncompressedSize )

Decompress a zlib compressed data block.

Parameters
pCompressedpointer to compressed data.
iCompressedSizecompressed data buffer size.
pUncompressedpointer to the decompressed data. You must create this buffer and once done with it, free it.
iUncompressedSizeuncompressed data buffer size.
Returns
0 on success, or a negative error code on failure.

◆ randSeedMWC()

void CRM64Pro::Tool::randSeedMWC ( Uint32 iSeed)

Initializes the Multiply-with-carry(MWC) random number generator with a seed.

For further information, you can check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Parameters
iSeedany Uint32 from [0,4294967295] interval.

◆ randMWC()

Uint32 CRM64Pro::Tool::randMWC ( )

Generates a random 32bits integer using Multiply-with-carry(MWC) algorithm.

For further information, you can check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Returns
random integer from [0,4294967295] interval.

◆ randRealMWC()

double CRM64Pro::Tool::randRealMWC ( )

Generates a random 64bits real number using Multiply-with-carry(MWC) algorithm.

For further information, you can check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Returns
random real from [0,1] interval.

◆ randSeedWELL()

void CRM64Pro::Tool::randSeedWELL ( Uint32 iSeed,
Uint32 * pSeedTable = nullptr )

Initializes the WELL512 random number generator with a seed.

For further information, check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Parameters
iSeedany Uint32 from [0,4294967295] interval.
pSeedTablepointer to an array of 16 Uint32 for storing the seed output. Default nullptr uses an internal array.

◆ randWELL()

Uint32 CRM64Pro::Tool::randWELL ( Uint32 * pSeedState = nullptr,
Uint32 * pSeedTable = nullptr )

Generates a random 32bits integer using WELL512 algorithm.

For further information, check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Parameters
pSeedStatepointer to an Uint32 containing the WELL512 algorithm state. Default nullptr uses internal state.
pSeedTablepointer to an array of 16 Uint32 containing the seed current status. Default nullptr uses internal array.
Returns
random integer from [0,4294967295] interval.

◆ randRealWELL()

double CRM64Pro::Tool::randRealWELL ( Uint32 * pSeedState = nullptr,
Uint32 * pSeedTable = nullptr )

Generates a random 64bits real number using WELL512 algorithm.

For further information, check the development blog entry on http://www.megastormsystems.com about PRNG algorithms.

Parameters
pSeedStatepointer to an Uint32 containing the WELL512 algorithm state. Default nullptr uses internal state.
pSeedTablepointer to an array of 16 Uint32 containing the seed current status. Default nullptr uses internal array.
Returns
random real from [0,1] interval.

◆ round() [1/2]

float CRM64Pro::Tool::round ( const float fNum)

Round a float value.

Parameters
fNumfloat to be rounded
Returns
rounded float value

◆ round() [2/2]

double CRM64Pro::Tool::round ( const double dNum)

Round a double value.

Parameters
dNumdouble to be rounded
Returns
rounded double value

◆ dirExists()

Sint32 CRM64Pro::Tool::dirExists ( const string & sPath)

Check if a directory exists.

Parameters
sPathstring containing the directory. Directory separators '\' and '/' are supported.
Returns
0 on success (directory exists) or a negative error code on failure.

◆ dirCreate()

Sint32 CRM64Pro::Tool::dirCreate ( const string & sPath)

Create a directory.

Extracts the directory, discards the filename and extension, and creates the directory. Directory separators '\' and '/' are supported.

Parameters
sPathstring containing the directory (e.g. myDir/, myDir/mySubDir).
Returns
0 on success, or a negative error code on failure.
Note
If the directory already exists, returns success without doing anything.

◆ fileExists()

Sint32 CRM64Pro::Tool::fileExists ( const string & sPath)

Check if a file exists.

Parameters
sPathstring containing [directory]+filename+[extension]. Directory separators '\' and '/' are supported.
Returns
0 on success (file exists) or a negative error code on failure.

◆ fileRemove()

Sint32 CRM64Pro::Tool::fileRemove ( const string & sPath)

Remove a file (with wildcard support).

Parameters
sPathstring containing [directory]+filename+[extension]. Directory separators '\' and '/' are supported. Wildcards '*' and '?' are supported.
Returns
0 on success, positive count of failed deletions, or a negative error code on failure.

◆ fileGetAbsolutePath()

Sint32 CRM64Pro::Tool::fileGetAbsolutePath ( const string & sPath,
string & sAbsolutePath )

Get the absolute path of a given relative path.

Parameters
sPathstring containing [directory]+filename+[extension]. Directory separators '\' and '/' are supported.
sAbsolutePatha string variable with the absolute path. Not modified on error.
Returns
0 on success, or a negative error code on failure.

◆ fileGetExePath()

Sint32 CRM64Pro::Tool::fileGetExePath ( string & sPath)

Get the executable path.

Parameters
sPatha string variable containing the full executable path. Will not be modified on error.
Returns
0 on success, or a negative error code on failure.

◆ fileGetName()

Sint32 CRM64Pro::Tool::fileGetName ( const string & sPath,
string & sFileName )

Get the filename.

Removes the directory and extension if present and gets only the filename.

Parameters
sPathstring containing [directory]+filename+[extension]. Directory separators '\' and '/' are supported.
sFileNamea string variable. Not modified on error.
Returns
0 on success, or a negative error code on failure.

◆ fileGetDir()

Sint32 CRM64Pro::Tool::fileGetDir ( const string & sPath,
string & sDirName )

Get the directory.

Removes the name and extension if present and gets only the directory.

Parameters
sPathstring containing [directory]+filename+[extension]. Directory separators '\' and '/' are supported.
sDirNamea string variable. Not modified on error.
Returns
0 on success, or a negative error code on failure.

◆ fileGetExtension()

Sint32 CRM64Pro::Tool::fileGetExtension ( const string & sPath,
string & sExtensionName )

Get the extension.

It removes the directory and name if present and get only the extension.

Parameters
sPathstring containing the [directory]+filename+[extension].
sExtensionNamea string variable. Will not be modified on error.
Returns
0 on success, or a negative error code on failure.

◆ fileCheckExtension()

Sint32 CRM64Pro::Tool::fileCheckExtension ( const string & sPath,
const string & sExt )

Check if a filename contains a given extension.

Parameters
sPathstring containing the [directory]+filename+[extension].
sExtthe extension to be checked.
Returns
0 on success(file contains given extension) or a negative error code on failure.

◆ fileOpenDialog()

Sint32 CRM64Pro::Tool::fileOpenDialog ( const string & sTitle,
const char * szFilter,
string & sSelectedFile )

Create a native file open dialog.

Parameters
sTitlestring containing dialog title.
szFilterpointer to a buffer containing pairs of nullptr-terminated filter strings. First string in each pair is a display string (e.g. "PNG Files"), second specifies the filter pattern (e.g. "*.png").
sSelectedFilestring to contain the directory+filename+extension of the selected file.
Returns
0 on success (sSelectedFile contains the selected file) or a negative error code on failure.

◆ fileSaveDialog()

Sint32 CRM64Pro::Tool::fileSaveDialog ( const string & sTitle,
const char * szFilter,
string & sSelectedFile )

Create a native file save dialog.

Parameters
sTitlestring containing dialog title.
szFilterpointer to a buffer containing pairs of nullptr-terminated filter strings. First string in each pair is a display string (e.g. "PNG Files"), second specifies the filter pattern (e.g. "*.png").
sSelectedFilestring to contain the directory+filename+extension of the selected file.
Returns
0 on success (sSelectedFile contains the selected file) or a negative error code on failure.

◆ messageBox()

Sint32 CRM64Pro::Tool::messageBox ( const string & sTitle,
const string & sMsg,
Uint32 iButtons = TMBB_OK,
eToolMBT eTMBT = TMBT_INFO,
Sint32 iTTL = 0,
Sint32 idCustomPanel = -1,
Sint32 idScreen = -1 )

Create a messagebox.

Parameters
sTitlestring containing the messagebox title. Can be empty.
sMsgstring containing the messagebox body text. Can be empty.
iButtonsCheck TMBB_OK, TMBB_CANCEL, TMBB_YES and TMBB_NO. Can be OR'ed. Default TMBB_OK.
eTMBTmessagebox type. Check ::eToolMBT enum. Default ::TMBT_INFO.
iTTLTime to live in milliseconds. 0 (default) for modal, otherwise modeless with specified duration.
idCustomPanelcustom panel id for the messagebox. Default -1 uses internal messagebox panel.
idScreenscreen id for the panel when using internal messagebox. Default -1 uses "default" screen.
Returns
0 when no selection, greater than 0 on success (selected button), or a negative error code on failure.

◆ szCopy()

Sint32 CRM64Pro::Tool::szCopy ( char * szDst,
const char * szSrc,
size_t iSize )

Copy a string-zero avoiding buffer overflow.

It avoids buffer overflow and always appends a nullptr string termination.

Parameters
szDstdestination char array of at least iSize size.
szSrcsource char array of at least iSize size.
iSizemaximum size of characters to copy.
Returns
0 on success, or a negative error code on failure.

◆ getDateStamp()

Sint32 CRM64Pro::Tool::getDateStamp ( string & sString)

Get current date+time stamp.

Parameters
sStringstring reference with the date+time stamp.
Returns
0 on success, or a negative error code on failure.

◆ strCompare()

Sint32 CRM64Pro::Tool::strCompare ( const string & sOne,
const string & sTwo )

Case insensitive string comparation.

Parameters
sOnestring one.
sTwostring two.
Returns
0 when the strings are different and 1 if they are equal.

◆ strToLowerCase()

Sint32 CRM64Pro::Tool::strToLowerCase ( string & sString)

Convert the string to lower case.

Parameters
sStringstring to be converted.
Returns
0 on success, or a negative error code on failure.

◆ strToUpperCase()

Sint32 CRM64Pro::Tool::strToUpperCase ( string & sString)

Convert the string to upper case.

Parameters
sStringstring to be converted.
Returns
0 on success, or a negative error code on failure.

◆ strTovStr()

Sint32 CRM64Pro::Tool::strTovStr ( const string sString,
const string sSplit,
vector< string > & vString )

Split a string into a vector of string given a split string.

Parameters
sStringoriginal string to be split.
sSplitsplit string.
vStringvector<string> to store split strings.
Returns
0 on success, or a negative error code on failure.

◆ strDecToInt()

Sint32 CRM64Pro::Tool::strDecToInt ( const string sString)

Convert a given string with a number in decimal format to a Sint32 number.

Parameters
sStringstring containing the number in decimal format.
Returns
the converted number.
Note
This method is very fast. Implementation by DarthGizka (https://stackoverflow.com/questions/16826422/c-most-efficient-way-to-convert-string-to-int-faster-than-atoi)

◆ intToStrDec()

Sint32 CRM64Pro::Tool::intToStrDec ( Sint32 iNum,
string & sString )

Convert a 32bits signed integer to a string in decimal format.

Parameters
iNuminteger number.
sStringstring to store the result.
Returns
0 on success, or a negative error code on failure.
Note
This method is very fast. Implementation by Arturo Martin-de-Nicolas (https://github.com/amdn/itoa_ljust).

◆ strHexToInt()

Sint32 CRM64Pro::Tool::strHexToInt ( const string sString)

Convert a given string with a number in hexdecimal format to a Sint32 number.

Parameters
sStringstring containing the number in hexadecimal format. It supports string starting with '0x', '#' or without any prefix.
Returns
the converted number.

◆ intToStrHex()

Sint32 CRM64Pro::Tool::intToStrHex ( Sint32 iNum,
string & sString )

Convert a 32bits signed integer to a string in hexadecimal format.

Parameters
iNuminteger number.
sStringstring to store the result.
Returns
0 on success, or a negative error code on failure.

◆ vStrToFile()

Sint32 CRM64Pro::Tool::vStrToFile ( const vector< string > & vString,
const string & sFileName )

Save a vector<string> to a filename.

Parameters
vStringvector<string> to be dumped into an external filename. Each string will be saved on a separate line.
sFileNamea string variable with the output file name.
Returns
0 on success, or a negative error code on failure.

◆ fileTovStr()

Sint32 CRM64Pro::Tool::fileTovStr ( vector< string > & vString,
const string & sFileName )

Load lines of a filename into a vector<string>.

Parameters
vStringvector<string> to be loaded with lines of the filename.
sFileNamea string variable with the input file name.
Returns
0 on success, or a negative error code on failure.