CMSDK  2.0.1
Classes | Macros | Typedefs | Functions
Utility functions and objects

Classes

struct  cmlabs::utils::DrumBeatInfo
 
class  cmlabs::utils::Mutex
 
class  cmlabs::utils::Semaphore
 
class  cmlabs::utils::Event
 
struct  cmlabs::utils::TimerSchedule
 
struct  cmlabs::utils::TimerTrigger
 
class  cmlabs::utils::Timer
 
class  cmlabs::utils::WaitQueue< T >
 
class  cmlabs::utils::WaitQueuePointer< T >
 
struct  cmlabs::utils::TimeQueueEntry< T >
 
class  cmlabs::utils::TimeQueue< T >
 
class  cmlabs::utils::TimeQueuePointer< T >
 
class  cmlabs::utils::CommandLineInfo
 
class  cmlabs::utils::Library
 
struct  cmlabs::utils::NetworkInterfaces
 
struct  cmlabs::utils::FileDetails
 

Macros

#define SharedMemoryFileHandleMapType   std::map<void*, std::string>
 
#define PROC_ERROR   0
 
#define PROC_TERMINATED   1
 
#define PROC_NOTSTARTED   2
 
#define PROC_RUNNING   3
 
#define PROC_TIMEOUT   4
 
#define NUM_PIPES   2
 
#define PARENT_WRITE_PIPE   0
 
#define PARENT_READ_PIPE   1
 
#define READ_FD   0
 
#define WRITE_FD   1
 
#define PARENT_READ_FD   ( (*pipes)[PARENT_READ_PIPE][READ_FD] )
 
#define PARENT_WRITE_FD   ( (*pipes)[PARENT_WRITE_PIPE][WRITE_FD] )
 
#define CHILD_READ_FD   ( (*pipes)[PARENT_WRITE_PIPE][READ_FD] )
 
#define CHILD_WRITE_FD   ( (*pipes)[PARENT_READ_PIPE][WRITE_FD] )
 
#define PROCBUFSIZE   4096
 
#define DLLHandle   void*
 
#define CHECKNETWORKINIT
 
#define WSAEWOULDBLOCK   EAGAIN
 
#define LOCALHOSTIP   16777343
 
#define MALLOC(x)   HeapAlloc(GetProcessHeap(), 0, (x))
 
#define FREE(x)   HeapFree(GetProcessHeap(), 0, (x))
 
#define GETIPPORT(a)   *(uint16*)((char*)&a + sizeof(uint32))
 
#define GETIPADDRESS(a)   *(uint32*)&a
 
#define GETIPADDRESSPORT(a, p)   (((uint32)a)) | (((uint64)p)<<32)
 
#define GETIPADDRESSQUAD(a)   ((uint8*)&a)[0], ((uint8*)&a)[1], ((uint8*)&a)[2], ((uint8*)&a)[3]
 
#define GETIPADDRESSQUADPORT(a)   ((uint8*)&a)[0], ((uint8*)&a)[1], ((uint8*)&a)[2], ((uint8*)&a)[3], ((uint16*)&a)[2]
 
#define NOSUCHFILE   0
 
#define STANDARDFILE   1
 
#define STANDARDDIR   2
 

Typedefs

typedef bool(* cmlabs::utils::DrumBeatFunc) (uint32 id, uint32 count)
 
typedef std::pair< std::string, Mutex * > cmlabs::utils::SharedMemoryMutexMapPair
 
typedef std::pair< std::string, Semaphore * > cmlabs::utils::SharedMemorySemaphoreMapPair
 
typedef std::pair< std::string, Event * > cmlabs::utils::SharedMemoryEventMapPair
 
typedef int(* cmlabs::utils::LibraryFunction) ()
 

Functions

bool cmlabs::utils::UtilsTest ()
 
bool cmlabs::utils::SetSharedSystemInstance (uint32 inst)
 
uint32 cmlabs::utils::GetSharedSystemInstance ()
 
bool cmlabs::utils::CreateDrumBeat (uint32 id, uint32 interval, DrumBeatFunc func, bool autostart=false)
 
bool cmlabs::utils::StartDrumBeat (uint32 id)
 
bool cmlabs::utils::StopDrumBeat (uint32 id)
 
bool cmlabs::utils::EndDrumBeat (uint32 id)
 
bool cmlabs::utils::EnterMutex (const char *name, uint32 ms, bool autocreate=true)
 
bool cmlabs::utils::LeaveMutex (const char *name)
 
bool cmlabs::utils::DestroyMutex (const char *name)
 
Semaphorecmlabs::utils::GetSemaphore (const char *name, bool autocreate=true)
 
bool cmlabs::utils::WaitForSemaphore (const char *name, uint32 ms, bool autocreate=true)
 
bool cmlabs::utils::SignalSemaphore (const char *name)
 
bool cmlabs::utils::DestroySemaphore (const char *name)
 
bool cmlabs::utils::WaitNextEvent (const char *name, uint32 ms, bool autocreate=true)
 
bool cmlabs::utils::SignalEvent (const char *name)
 
bool cmlabs::utils::DestroyEvent (const char *name)
 
bool cmlabs::utils::UnitTest_Timer ()
 
bool cmlabs::utils::UnitTest_Utils ()
 
char * cmlabs::utils::CreateSharedMemorySegment (const char *name, uint64 size, bool force=false)
 
char * cmlabs::utils::OpenSharedMemorySegment (const char *name, uint64 size)
 
bool cmlabs::utils::CloseSharedMemorySegment (char *data, uint64 size)
 
uint32 cmlabs::utils::Calc32BitFieldSize (uint32 bitsize)
 
bool cmlabs::utils::Reset32BitField (char *bitfield, uint32 bytesize)
 
bool cmlabs::utils::GetFirstFreeBitLoc (const char *bitfield, uint32 bytesize, uint32 &loc)
 
bool cmlabs::utils::GetFirstFreeBitLocN (const char *bitfield, uint32 bytesize, uint32 num, uint32 &loc)
 
bool cmlabs::utils::SetBit (uint32 loc, bit value, char *bitfield, uint32 bytesize)
 
bool cmlabs::utils::SetBitN (uint32 loc, uint32 num, bit value, char *bitfield, uint32 bytesize)
 
bool cmlabs::utils::GetBit (uint32 loc, const char *bitfield, uint32 bytesize, bit &val)
 
bool cmlabs::utils::GetLastOccupiedBitLoc (const char *bitfield, uint32 bytesize, uint32 &loc)
 
std::string cmlabs::utils::GetBitFieldAsString (const char *bitfield, uint32 bytesize, uint32 size)
 
std::string cmlabs::utils::PrintBitFieldString (const char *bitfield, uint32 bytesize, uint32 size, const char *title)
 
std::string cmlabs::utils::PrintProgramTrace (uint32 startLine=0, uint32 endLine=0)
 
std::list< std::string > cmlabs::utils::GetProgramTrace ()
 
int32 cmlabs::utils::AtomicIncrement32 (int32 volatile &v)
 
int64 cmlabs::utils::AtomicIncrement64 (int64 volatile &v)
 
int32 cmlabs::utils::AtomicDecrement32 (int32 volatile &v)
 
int64 cmlabs::utils::AtomicDecrement64 (int64 volatile &v)
 
bool cmlabs::utils::Sleep (uint32 ms)
 
bool cmlabs::utils::CreateThread (THREAD_FUNCTION func, void *args, ThreadHandle &thread, uint32 &osID)
 
bool cmlabs::utils::WaitForThreadToFinish (ThreadHandle hThread, uint32 timeoutMS=0)
 
bool cmlabs::utils::CheckForThreadFinished (ThreadHandle hThread)
 
bool cmlabs::utils::TerminateThread (ThreadHandle hThread)
 
bool cmlabs::utils::PauseThread (ThreadHandle hThread)
 
bool cmlabs::utils::ContinueThread (ThreadHandle hThread)
 
bool cmlabs::utils::GetCurrentThreadUniqueID (uint32 &tid)
 
bool cmlabs::utils::GetCurrentThreadOSID (uint32 &tid)
 
bool cmlabs::utils::GetCurrentThread (ThreadHandle &thread)
 
bool cmlabs::utils::IsThreadRunning (ThreadHandle hThread)
 
uint32 cmlabs::utils::GetThreadStatColAbility ()
 
bool cmlabs::utils::GetCPUTicks (ThreadHandle hThread, uint64 &ticks)
 
bool cmlabs::utils::GetCPUTicks (uint64 &ticks)
 
bool cmlabs::utils::GetProcessCPUTicks (uint64 &ticks)
 
bool cmlabs::utils::GetProcessCPUTicks (uint32 osProcID, uint64 &ticks)
 
bool cmlabs::utils::GetProcAndOSCPUUsage (double &procPercentUse, double &osPercentUse, uint64 &prevOSTicks, uint64 &prevOSIdleTicks, uint64 &prevProcTicks)
 
bool cmlabs::utils::GetProcAndOSCPUUsage (uint32 osProcID, double &procPercentUse, double &osPercentUse, uint64 &prevOSTicks, uint64 &prevOSIdleTicks, uint64 &prevProcTicks)
 
bool cmlabs::utils::GetOSCPUUsage (double &percentUse)
 
bool cmlabs::utils::GetThreadPriority (ThreadHandle hThread, uint16 priority)
 
bool cmlabs::utils::SetThreadPriority (ThreadHandle hThread, uint16 priority)
 
int cmlabs::utils::ToOSPriority (int pri)
 
int cmlabs::utils::FromOSPriority (int pri)
 
bool cmlabs::utils::SignalThread (ThreadHandle hThread, int32 signal)
 
bool cmlabs::utils::GetDesktopSize (uint32 &width, uint32 &height)
 
bool cmlabs::utils::RenameConsoleWindow (const char *name, bool prepend=false)
 
bool cmlabs::utils::MoveConsoleWindow (int32 x=-1, int32 y=-1, int32 w=-1, int32 h=-1)
 
int cmlabs::utils::RunOSCommand (const char *cmdline, const char *initdir, uint32 timeout, std::string &stdoutString, std::string &stderrString)
 
uint32 cmlabs::utils::NewProcess (const char *cmdline, const char *initdir=NULL, const char *title=NULL, int16 x=-1, int16 y=-1, int16 w=-1, int16 h=-1)
 
uint8 cmlabs::utils::GetProcessStatus (uint32 proc, int &returncode)
 
bool cmlabs::utils::EndProcess (uint32 proc)
 
uint8 cmlabs::utils::WaitForProcess (uint32 proc, uint32 timeout, int &returncode)
 
uint32 cmlabs::utils::GetLocalProcessID ()
 
bool cmlabs::utils::SetCommandLine (int argc, char *argv[])
 
std::string cmlabs::utils::GetCommandLine ()
 
std::string cmlabs::utils::GetCommandLinePath ()
 
std::string cmlabs::utils::GetCommandLineExecutable ()
 
std::string cmlabs::utils::GetCommandLineExecutableOnly ()
 
uint32 cmlabs::utils::GetCommandLineArgCount ()
 
std::string cmlabs::utils::GetCommandLineArg (uint16 n)
 
std::string cmlabs::utils::GetCommandLineArg (const char *key)
 
Librarycmlabs::utils::OpenLibrary (const char *libName)
 
const char * cmlabs::utils::GetComputerName ()
 
uint64 cmlabs::utils::GetProcessMemoryUsage ()
 
uint64 cmlabs::utils::GetPeakProcessMemoryUsage ()
 
uint16 cmlabs::utils::GetCPUCount ()
 
uint16 cmlabs::utils::GetCPUArchitecture ()
 
uint64 cmlabs::utils::GetCPUSpeed ()
 
uint64 cmlabs::utils::GetSystemMemorySize ()
 
bool cmlabs::utils::GetSystemMemoryUsage (uint64 &totalRAM, uint64 &freeRAM)
 
const char * cmlabs::utils::GetSystemArchitecture ()
 
const char * cmlabs::utils::GetSystemOSName ()
 
bool cmlabs::utils::GetSystemOSVersion (uint16 &major, uint16 &minor, uint16 &build, char *text, uint16 textSize)
 
bool cmlabs::utils::GetSocketError (int wsaError, char *errorString, uint16 errorStringMaxSize, bool *isRecoverable)
 
int cmlabs::utils::GetLastOSErrorNumber ()
 
std::string cmlabs::utils::GetLastOSErrorMessage ()
 
bool cmlabs::utils::WaitForSocketReadability (SOCKET s, int32 timeout)
 
bool cmlabs::utils::WaitForSocketWriteability (SOCKET s, int32 timeout)
 
bool cmlabs::utils::SetSocketNonBlockingMode (SOCKET s)
 
bool cmlabs::utils::SetSocketBlockingMode (SOCKET s)
 
bool cmlabs::utils::LookupIPAddress (const char *name, uint32 &address)
 
bool cmlabs::utils::LookupHostname (uint32 address, char *name, uint32 maxSize)
 
std::string cmlabs::utils::GetLocalHostnameString ()
 
bool cmlabs::utils::GetLocalHostname (char *name, uint32 maxSize)
 
bool cmlabs::utils::IsLocalIPAddress (const char *addr)
 
bool cmlabs::utils::IsLocalIPAddress (uint32 &address)
 
bool cmlabs::utils::GetLocalIPAddress (uint32 &address)
 
uint32 * cmlabs::utils::GetLocalIPAddresses (uint32 &count)
 
bool cmlabs::utils::GetLocalMACAddress (uint64 &address)
 
uint64 * cmlabs::utils::GetLocalMACAddresses (uint32 &count)
 
NetworkInterfacescmlabs::utils::GetLocalInterfaces (uint32 &count)
 
bool cmlabs::utils::GetNextAvailableLocalPort (uint16 lastPort, uint16 &nextPort)
 
uint32 cmlabs::utils::ReadRegistryDWORD (const char *key, const char *entry)
 
uint64 cmlabs::utils::ReadRegistryQWORD (const char *key, const char *entry)
 
std::string cmlabs::utils::ReadRegistryString (const char *key, const char *entry)
 
bool cmlabs::utils::WriteRegistryDWORD (const char *key, const char *entry, uint32 value)
 
bool cmlabs::utils::WriteRegistryQWORD (const char *key, const char *entry, uint64 value)
 
bool cmlabs::utils::WriteRegistryString (const char *key, const char *entry, const char *value)
 
bool cmlabs::utils::DeleteRegistryEntry (const char *key, const char *entry)
 
bool cmlabs::utils::DeleteRegistryKey (const char *key)
 
bool cmlabs::utils::DeleteRegistryTree (const char *root, const char *key)
 
bool cmlabs::utils::CopyRegistryTree (const char *entry, const char *newName)
 
void cmlabs::utils::PrintBinary (void *p, uint32 size, bool asInt, const char *title)
 
const char * cmlabs::utils::stristr (const char *str, const char *substr, uint32 len=0)
 
bool cmlabs::utils::GetNextLineEnd (const char *str, uint32 size, uint32 &len, uint32 &crSize)
 
uint32 cmlabs::utils::TextReplaceCharsInPlace (char *str, uint32 size, char find, char replace)
 
bool cmlabs::utils::TextEndsWith (const char *str, const char *end, bool caseSensitive=true)
 
bool cmlabs::utils::TextStartsWith (const char *str, const char *start, bool caseSensitive=true)
 
uint32 cmlabs::utils::strcpyavail (char *dst, const char *src, uint32 maxlen, bool copyAvailable)
 
const char * cmlabs::utils::laststrstr (const char *str1, const char *str2)
 
const char * cmlabs::utils::laststristr (const char *str1, const char *str2)
 
uint32 cmlabs::utils::StringSingleReplace (std::string &text, std::string key, std::string value, bool onlyFirst)
 
uint32 cmlabs::utils::StringMultiReplace (std::string &text, std::map< std::string, std::string > &map, bool onlyFirst)
 
uint32 cmlabs::utils::StringScriptReplace (std::string &text, std::string name, std::list< std::map< std::string, std::string > > &list)
 
std::string cmlabs::utils::TextCapitalise (const char *text)
 
std::string cmlabs::utils::TextUppercase (const char *text)
 
std::string cmlabs::utils::TextLowercase (const char *text)
 
std::string cmlabs::utils::TextIndent (const char *text, const char *indent)
 
std::string cmlabs::utils::TextUnindent (const char *text)
 
std::string cmlabs::utils::TextTrimQuotes (const char *text)
 
std::string cmlabs::utils::TextTrim (const char *text)
 
std::multimap< std::string, std::string > cmlabs::utils::TextMultiMapSplit (const char *text, const char *outersplit, const char *innersplit)
 
std::map< std::string, std::string > cmlabs::utils::TextMapSplit (const char *text, const char *outersplit, const char *innersplit)
 
std::string cmlabs::utils::TextJoin (std::vector< std::string > &list, const char *split, uint32 start=0, uint32 count=0)
 
std::string cmlabs::utils::TextJoin (std::list< std::string > &list, const char *split, uint32 start=0, uint32 count=0)
 
std::string cmlabs::utils::TextJoin (std::map< std::string, std::string > &map, const char *innersplit, const char *outersplit, bool keyquotes, bool valquotes)
 
std::string cmlabs::utils::TextJoinJSON (std::map< std::string, std::string > &map)
 
std::string cmlabs::utils::TextJoinXML (std::map< std::string, std::string > &map, const char *innernodeName, const char *outernodeName)
 
std::vector< std::string > cmlabs::utils::TextListSplit (const char *text, const char *split, bool keepEmpty=true, bool autoTrim=false)
 
std::vector< std::string > cmlabs::utils::TextListSplitLines (const char *text, bool keepEmpty=true, bool autoTrim=false)
 
std::vector< std::string > cmlabs::utils::TextListBreakLines (const char *text, uint32 maxLineLength=80)
 
std::string cmlabs::utils::TextListBreakLines (const char *text, uint32 maxLineLength, const char *breakstr)
 
std::string cmlabs::utils::TextVectorConcat (std::vector< std::string >, const char *sep, bool allowEmpty=true)
 
std::vector< std::string > cmlabs::utils::TextCommandlineSplit (const char *cmdline)
 
char ** cmlabs::utils::SplitCommandline (const char *cmdline, int &argc)
 
wchar_t ** cmlabs::utils::SplitCommandlineW (const char *cmdline, int &argc)
 
bool cmlabs::utils::DeleteCommandline (char **argv, int argc)
 
std::string cmlabs::utils::StringFormat (const char *format,...)
 
char * cmlabs::utils::StringFormat (uint32 &size, const char *format,...)
 
bool cmlabs::utils::StringFormatInto (char *dst, uint32 maxsize, const char *format,...)
 
char * cmlabs::utils::StringFormatVA (uint32 &size, const char *format, va_list args)
 
unsigned char cmlabs::utils::Hex2Char (const char *str)
 
unsigned char cmlabs::utils::Dec2Char (const char *str)
 
int cmlabs::utils::CRC32 (const char *addr, uint32 length, int32 crc=0)
 
int8 cmlabs::utils::CompareFloats (float64 a, float64 b)
 
std::string cmlabs::utils::ReadAFileString (std::string filename)
 
char * cmlabs::utils::ReadAFile (const char *filename, uint32 &length, bool binary=false)
 
char * cmlabs::utils::ReadAFile (const char *dir, const char *filename, uint32 &length, bool binary=false)
 
bool cmlabs::utils::WriteAFile (const char *filename, const char *data, uint32 length, bool binary=false)
 
bool cmlabs::utils::WriteAFile (const char *dir, const char *filename, const char *data, uint32 length, bool binary=false)
 
bool cmlabs::utils::AppendToAFile (const char *filename, const char *data, uint32 length, bool binary=false)
 
bool cmlabs::utils::AppendToAFile (const char *dir, const char *filename, const char *data, uint32 length, bool binary=false)
 
char * cmlabs::utils::GetFileList (const char *dirname, const char *ext, uint32 &count, bool fullpath, uint32 maxNameLen=256)
 
FileDetails cmlabs::utils::GetFileDetails (const char *filename)
 
std::string cmlabs::utils::GetFilePath (const char *filename)
 
const char * cmlabs::utils::GetFileBasename (const char *filename)
 
bool cmlabs::utils::DeleteAFile (const char *filename, bool force)
 
bool cmlabs::utils::DeleteAFile (const char *dir, const char *filename, bool force)
 
bool cmlabs::utils::DeleteADir (const char *dirname, bool force)
 
bool cmlabs::utils::CreateADir (const char *dirname)
 
bool cmlabs::utils::DoesADirExist (const char *dirname)
 
bool cmlabs::utils::DoesAFileExist (const char *filename)
 
bool cmlabs::utils::DeleteFilesInADir (const char *dirname, bool force)
 
bool cmlabs::utils::ChangeAFileAttr (const char *filename, bool read, bool write)
 
bool cmlabs::utils::MoveAFile (const char *oldfilename, const char *newfilename, bool force=false)
 
bool cmlabs::utils::MoveAFile (const char *olddir, const char *oldfilename, const char *newdir, const char *newfilename, bool force=false)
 
bool cmlabs::utils::CopyAFile (const char *oldfilename, const char *newfilename, bool force=false)
 
bool cmlabs::utils::CopyAFile (const char *olddir, const char *oldfilename, const char *newdir, const char *newfilename, bool force=false)
 
char * cmlabs::utils::Int2Ascii (int64 value, char *result, uint16 size, uint8 base)
 
char * cmlabs::utils::Uint2Ascii (uint64 value, char *result, uint16 size, uint8 base)
 
unsigned char * cmlabs::utils::Ascii2UTF16LE (const char *ascii, uint32 len, uint32 &size)
 
bool cmlabs::utils::IsTextNumeric (const char *ascii, uint32 start=0, uint32 end=0)
 
int64 cmlabs::utils::Ascii2Int64 (const char *ascii, uint32 start=0, uint32 end=0)
 
uint64 cmlabs::utils::Ascii2Uint64 (const char *ascii, uint32 start=0, uint32 end=0)
 
uint64 cmlabs::utils::AsciiHex2Uint64 (const char *ascii, uint32 start=0, uint32 end=0)
 
int32 cmlabs::utils::Ascii2Int32 (const char *ascii, uint32 start=0, uint32 end=0)
 
uint32 cmlabs::utils::Ascii2Uint32 (const char *ascii, uint32 start=0, uint32 end=0)
 
uint32 cmlabs::utils::AsciiHex2Uint32 (const char *ascii, uint32 start=0, uint32 end=0)
 
float64 cmlabs::utils::Ascii2Float64 (const char *ascii, uint32 start=0, uint32 end=0)
 
char * cmlabs::utils::TextSubstringCopy (const char *ascii, uint32 start, uint32 end)
 
std::string cmlabs::utils::DecodeJSON (std::string str)
 
std::string cmlabs::utils::EncodeJSON (std::string str)
 
bool cmlabs::utils::SeedRandomValues (uint32 seedvalue=0)
 
double cmlabs::utils::RandomValue ()
 
double cmlabs::utils::RandomValue (double to)
 
double cmlabs::utils::RandomValue (double from, double to)
 
double cmlabs::utils::RandomValue (double from, double to, double interval)
 
int64 cmlabs::utils::RandomInt (int64 from=0, int64 to=100)
 
std::string cmlabs::utils::BytifySize (double val)
 
std::string cmlabs::utils::BytifySizes (double val1, double val2)
 
std::string cmlabs::utils::BytifyRate (double val)
 
std::string cmlabs::utils::BytifyRates (double val1, double val2)
 

Detailed Description

This is a list of the CMSDK utility functions and objects

Function Documentation

◆ GetPeakProcessMemoryUsage()

uint64 cmlabs::utils::GetPeakProcessMemoryUsage ( )
  • AIX and Solaris ---------------------------------------— */
  • AIX and Solaris ---------------------------------------— */