Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

ArUtil Class Reference

#include <ariaUtil.h>

List of all members.


Detailed Description

This class has utility functions.


Public Types

enum  BITS {
  BIT0 = 0x1, BIT1 = 0x2, BIT2 = 0x4, BIT3 = 0x8,
  BIT4 = 0x10, BIT5 = 0x20, BIT6 = 0x40, BIT7 = 0x80,
  BIT8 = 0x100, BIT9 = 0x200, BIT10 = 0x400, BIT11 = 0x800,
  BIT12 = 0x1000, BIT13 = 0x2000, BIT14 = 0x4000, BIT15 = 0x8000
}
 Values for the bits from 0 to 16. More...
enum  REGKEY {
  REGKEY_CLASSES_ROOT, REGKEY_CURRENT_CONFIG, REGKEY_CURRENT_USER, REGKEY_LOCAL_MACHINE,
  REGKEY_USERS
}

Static Public Member Functions

static void addDirectories (char *dest, size_t destLength, const char *baseDir, const char *insideDir)
 Adds two directories, taking care of all slash issues.
static void appendSlash (std::string &path)
 Appends a slash to the given string path if necessary.
static void appendSlash (char *path, size_t pathLength)
 Appends a slash to a path if there is not one there already.
static double atof (const char *nptr)
 Does an atof but if its inf or -inf deals with it fine.
static bool changeFileTimestamp (const char *fileName, time_t timestamp)
 Sets the timestamp on the specified file.
static const char * convertBool (int val)
 Converts an integer value into a string for true or false.
static int creat (const char *pathname, mode_t mode, bool closeOnExec=true)
 Opens a file, defaulting it so that the file will close on exec.
template<class T>
static void deleteSet (T begin, T end)
 Delete all members of a set. Does NOT empty the set.
template<class T>
static void deleteSetPairs (T begin, T end)
 Delete all members of a set. Does NOT empty the set.
static void escapeSpaces (char *dest, const char *src, size_t maxLen)
 Puts a \ before spaces in src, puts it into dest.
static bool findFile (const char *fileName)
 OS-independent way of checking to see if a file exists and is readable.
static bool findFirstStringInRegistry (const char *key, const char *value, char *str, int len)
 Returns a string from the Windows registry, searching each of the following registry root paths in order: REGKEY_CURRENT_USER, REGKEY_LOCAL_MACHINE.
static double findMax (double first, double second)
 Returns the maximum of the two values.
static int findMax (int first, int second)
 Returns the maximum of the two values.
static double findMin (double first, double second)
 Returns the minimum of the two values.
static int findMin (int first, int second)
 Returns the minimum of the two values.
static void fixSlashes (std::string &path)
 Fixes the slash orientation in the given file path string for the current platform.
static void fixSlashes (char *path, size_t pathLength)
 Fix the slash orientation in file path string for windows or linux.
static void fixSlashesBackward (char *path, size_t pathLength)
 Fix the slash orientation in file path string to be all backward.
static void fixSlashesForward (char *path, size_t pathLength)
 Fix the slash orientation in file path string to be all forward.
static bool floatIsNormal (double f)
static FILE * fopen (const char *path, const char *mode, bool closeOnExec=true)
 Opens a file, defaulting it so that the file will close on exec.
static void functorPrintf (ArFunctor1< const char * > *functor, char *str,...)
 Function for doing a printf style call to a functor.
static bool getDirectory (const char *fileName, char *result, size_t resultLen)
 Pulls the directory out of a file name.
static bool getFileName (const char *fileName, char *result, size_t resultLen)
 Pulls the filename out of the file name.
static bool getStringFromFile (const char *fileName, char *str, size_t strLen)
 Gets a string contained in an arbitrary file.
static bool getStringFromRegistry (REGKEY root, const char *key, const char *value, char *str, int len)
 Returns a string from the Windows registry.
static unsigned int getTime (void)
 Get the time in milliseconds.
static bool isOnlyAlphaNumeric (const char *str)
 Returns true if this string is only alphanumeric, false otherwise.
static bool isStrEmpty (const char *str)
 Returns true if the given string is null or of zero length, false otherwise.
static bool localtime (struct tm *result)
static bool localtime (const time_t *timep, struct tm *result)
static void lower (char *dest, const char *src, size_t maxLen)
 Lowers a string from src into dest, make sure there's enough space.
static bool matchCase (const char *baseDir, const char *fileName, char *result, size_t resultLen)
 this matches the case out of what file we want
static int open (const char *pathname, int flags, mode_t mode, bool closeOnExec=true)
 Opens a file, defaulting it so that the file will close on exec.
static int open (const char *pathname, int flags, bool closeOnExec=true)
 Opens a file, defaulting it so that the file will close on exec.
static FILE * popen (const char *command, const char *type, bool closeOnExec=true)
 Opens a pipe, defaulting it so that the file will close on exec.
static void putCurrentDayInString (char *s, size_t len)
static void putCurrentHourInString (char *s, size_t len)
static void putCurrentMinuteInString (char *s, size_t len)
static void putCurrentMonthInString (char *s, size_t len)
static void putCurrentSecondInString (char *s, size_t len)
static void putCurrentYearInString (char *s, size_t len)
static void setFileCloseOnExec (FILE *file, bool closeOnExec=true)
 Sets if the file descriptor will be closed on exec or not.
static void setFileCloseOnExec (int fd, bool closeOnExec=true)
 Sets if the file descriptor will be closed on exec or not.
static long sizeFile (std::string fileName)
 OS-independent way of finding the size of a file.
static long sizeFile (const char *fileName)
 OS-independent way of finding the size of a file.
static void sleep (unsigned int ms)
 Sleep for the given number of milliseconds.
static int strcasecmp (const char *str, const char *str2)
 Finds out if two strings are equal (ignoring case).
static int strcasecmp (const char *str, std::string str2)
 Finds out if two strings are equal (ignoring case).
static int strcasecmp (std::string str, const char *str2)
 Finds out if two strings are equal (ignoring case).
static int strcasecmp (std::string str, std::string str2)
 Finds out if two strings are equal (ignoring case).
static int strcasequotecmp (const std::string &str1, const std::string &str2)
 Compares two strings (ignoring case and surrounding quotes).
static int strcmp (const char *str, const char *str2)
 Finds out if two strings are equal.
static int strcmp (const char *str, std::string str2)
 Finds out if two strings are equal.
static int strcmp (std::string str, const char *str2)
 Finds out if two strings are equal.
static int strcmp (std::string str, std::string str2)
 Finds out if two strings are equal.
static bool stripQuotes (char *dest, const char *src, size_t destLen)
 Strips out the quotes in the src buffer into the dest buffer.
static void writeToFile (const char *str, FILE *file)
 Function for doing a fprintf to a file (here to make a functor for).

Static Public Attributes

static const char * COM1 = "/dev/ttyS0"
 First serial port device name (value depends on compilation platform).
static const char * COM10 = "/dev/ttyS9"
 Tenth serial port device name (value depends on compilation platform).
static const char * COM11 = "/dev/ttyS10"
 Eleventh serial port device name (value depends on compilation platform).
static const char * COM12 = "/dev/ttyS11"
 Twelth serial port device name (value depends on compilation platform).
static const char * COM13 = "/dev/ttyS12"
 Thirteenth serial port device name (value depends on compilation platform).
static const char * COM14 = "/dev/ttyS13"
 Fourteenth serial port device name (value depends on compilation platform).
static const char * COM15 = "/dev/ttyS14"
 Fifteenth serial port device name (value depends on compilation platform).
static const char * COM16 = "/dev/ttyS15"
 Sixteenth serial port device name (value depends on compilation platform).
static const char * COM2 = "/dev/ttyS1"
 Second serial port device name (value depends on compilation platform).
static const char * COM3 = "/dev/ttyS2"
 Third serial port device name (value depends on compilation platform).
static const char * COM4 = "/dev/ttyS3"
 Fourth serial port device name (value depends on compilation platform).
static const char * COM5 = "/dev/ttyS4"
 Fifth serial port device name (value depends on compilation platform).
static const char * COM6 = "/dev/ttyS5"
 Sixth serial port device name (value depends on compilation platform).
static const char * COM7 = "/dev/ttyS6"
 Seventh serial port device name (value depends on compilation platform).
static const char * COM8 = "/dev/ttyS7"
 Eighth serial port device name (value depends on compilation platform).
static const char * COM9 = "/dev/ttyS8"
 Ninth serial port device name (value depends on compilation platform).
static const char * FALSESTRING = "false"
 "false"
static const char * TRUESTRING = "true"
 "true"

Static Protected Member Functions

static std::list< std::string > splitFileName (const char *fileName)
 this splits up a file name (it isn't exported since it'd crash with dlls)


Member Enumeration Documentation

enum ArUtil::BITS
 

Values for the bits from 0 to 16.

Enumeration values:
BIT0  value of BIT0
BIT1  value of BIT1
BIT2  value of BIT2
BIT3  value of BIT3
BIT4  value of BIT4
BIT5  value of BIT5
BIT6  value of BIT6
BIT7  value of BIT7
BIT8  value of BIT8
BIT9  value of BIT9
BIT10  value of BIT10
BIT11  value of BIT11
BIT12  value of BIT12
BIT13  value of BIT13
BIT14  value of BIT14
BIT15  value of BIT15

enum ArUtil::REGKEY
 

These are for passing into getStringFromRegistry

Enumeration values:
REGKEY_CLASSES_ROOT  use HKEY_CLASSES_ROOT
REGKEY_CURRENT_CONFIG  use HKEY_CURRENT_CONFIG
REGKEY_CURRENT_USER  use HKEY_CURRENT_USER
REGKEY_LOCAL_MACHINE  use HKEY_LOCAL_MACHIE
REGKEY_USERS  use HKEY_USERS


Member Function Documentation

void ArUtil::addDirectories char *  dest,
size_t  destLength,
const char *  baseDir,
const char *  insideDir
[static]
 

Adds two directories, taking care of all slash issues.

This function will take the 'baseDir' and put the 'insideDir' after it so that it winds up with 'baseDir/insideDir/'. It will take care of slashes, making sure there is one between them and one at the end, and the slashes will match what the operating system expects.

Parameters:
dest the place to put the result
destLength the length of the place to put the results
baseDir the directory to start with
insideDir the directory to place after the baseDir

void ArUtil::appendSlash char *  path,
size_t  pathLength
[static]
 

Appends a slash to a path if there is not one there already.

Append a directory separator character to the given path string, depending on the platform. On Windows, a backslash ('\') is added. On other platforms, a forward slash ('/') is appended. If there is no more allocated space in the path string, no character will be appended.

Parameters:
path the path string to append a slash to
pathLength maximum length allocated for path string

template<class T>
static void ArUtil::deleteSet begin,
end
[inline, static]
 

Delete all members of a set. Does NOT empty the set.

Assumes that T is an iterator that supports the operator*, operator!= and operator++. The return is assumed to be a pointer to a class that needs to be deleted.

template<class T>
static void ArUtil::deleteSetPairs begin,
end
[inline, static]
 

Delete all members of a set. Does NOT empty the set.

Assumes that T is an iterator that supports the operator**, operator!= and operator++. The return is assumed to be a pair. The second value of the pair is assumed to be a pointer to a class that needs to be deleted.

void ArUtil::escapeSpaces char *  dest,
const char *  src,
size_t  maxLen
[static]
 

Puts a \ before spaces in src, puts it into dest.

This copies src into dest but puts a \ before any spaces in src, escaping them... its mostly for use with ArArgumentBuilder... make sure you have at least maxLen spaces in the arrays that you're passing as dest... this allocates no memory

bool ArUtil::findFile const char *  fileName  )  [static]
 

OS-independent way of checking to see if a file exists and is readable.

Returns:
true if file is found
Parameters:
fileName name of the file to size

void ArUtil::fixSlashes std::string &  path  )  [static]
 

Fixes the slash orientation in the given file path string for the current platform.

Parameters:
path the path in which to fix the orientation of the slashes

void ArUtil::fixSlashes char *  path,
size_t  pathLength
[static]
 

Fix the slash orientation in file path string for windows or linux.

Parameters:
path the path in which to fix the orientation of the slashes
pathLength the maximum length of path

void ArUtil::fixSlashesBackward char *  path,
size_t  pathLength
[static]
 

Fix the slash orientation in file path string to be all backward.

Parameters:
path the path in which to fix the orientation of the slashes
pathLength how long that path is at max

void ArUtil::fixSlashesForward char *  path,
size_t  pathLength
[static]
 

Fix the slash orientation in file path string to be all forward.

Parameters:
path the path in which to fix the orientation of the slashes
pathLength how long that path is at max

bool ArUtil::floatIsNormal double  f  )  [static]
 

Return true if the value of f is not NaN and is not infinite (+/- INF)

void ArUtil::functorPrintf ArFunctor1< const char * > *  functor,
char *  str,
  ...
[static]
 

Function for doing a printf style call to a functor.

Java and Python Wrappers: Not available in Java or Python wrapper libraries.

bool ArUtil::getStringFromFile const char *  fileName,
char *  str,
size_t  strLen
[static]
 

Gets a string contained in an arbitrary file.

This function reads a string from a file. The file can contain spaces or tabs, but a '\r' or '\n' will be treated as the end of the string, and the string cannot have more characters than the value given by strLen. This is mostly for internal use with Linux to determine the Aria directory from a file in /etc, but will work with Linux or Windows.

Parameters:
fileName name of the file in which to look
str the string to copy the file contents into
strLen the maximum allocated length of str

bool ArUtil::getStringFromRegistry REGKEY  root,
const char *  key,
const char *  value,
char *  str,
int  len
[static]
 

Returns a string from the Windows registry.

Look up the given value under the given key, within the given registry root key.

Parameters:
root the root key to use, one of the REGKEY enum values
key the name of the key to find
value the value name in which to find the string
str where to put the string found, or if it could not be found, an empty (length() == 0) string
len the length of the allocated memory in str
Returns:
true if the string was found, false if it was not found or if there was a problem such as the string not being long enough

unsigned int ArUtil::getTime void   )  [static]
 

Get the time in milliseconds.

Get the time in milliseconds, counting from some arbitrary point. This time is only valid within this run of the program.

Returns:
millisecond time

bool ArUtil::localtime struct tm *  result  )  [static]
 

Call ArUtil::localtime(const time_t*, struct tm *) with the current time obtained by calling time(NULL).

Returns:
false on error (e.g. invalid input), otherwise true.

bool ArUtil::localtime const time_t *  timep,
struct tm *  result
[static]
 

Interface to native platform localtime() function. On Linux, this is equivalent to a call to localtime_r(timep, result) (which is threadsafe, including the returned pointer, since it uses a different time struct for each thread) On Windows, this is equivalent to a call to localtime(timep, result). In addition, a static mutex is used to make it threadsafe.

Parameters:
timep Pointer to current time (Unix time_t; seconds since epoch)
result The result of calling platform localtime function is copied into this struct, so it must have been allocated.
Returns:
false on error (e.g. invalid input), otherwise true.
Example:
  struct tm t;
  ArUtil::localtime(time(NULL), &t);
  ArLog::log("Current month is %d.\n", t.tm_mon);

void ArUtil::lower char *  dest,
const char *  src,
size_t  maxLen
[static]
 

Lowers a string from src into dest, make sure there's enough space.

This copies src into dest but makes it lower case make sure you have at least maxLen arrays that you're passing as dest... this allocates no memory

bool ArUtil::matchCase const char *  baseDir,
const char *  fileName,
char *  result,
size_t  resultLen
[static]
 

this matches the case out of what file we want

Parameters:
baseDir the base directory to work from
fileName the fileName to squash the case from
result where to put the result
resultLen length of the result
Returns:
true if it could find the file, the result is in result, false if it couldn't find the file

void ArUtil::putCurrentDayInString char *  s,
size_t  len
[static]
 

Put the current day (GMT) of the month in s (e.g. "20").

Parameters:
s String buffer (allocated) to write day into
len Size of s

void ArUtil::putCurrentHourInString char *  s,
size_t  len
[static]
 

Put the current hour (GMT) in s (e.g. "13" for 1 o'clock PM).

Parameters:
s String buffer (allocated) to write hour into
len Size of s

void ArUtil::putCurrentMinuteInString char *  s,
size_t  len
[static]
 

Put the current minute (GMT) in s (e.g. "05").

Parameters:
s String buffer (allocated) to write minutes into
len Size of s

void ArUtil::putCurrentMonthInString char *  s,
size_t  len
[static]
 

Put the current month (GMT) in s (e.g. "09" if September).

Parameters:
s String buffer (allocated) to write month into
len Size of s

void ArUtil::putCurrentSecondInString char *  s,
size_t  len
[static]
 

Put the current second (GMT) in s (e.g. "59").

Parameters:
s String buffer (allocated) to write seconds into
len Size of s

void ArUtil::putCurrentYearInString char *  s,
size_t  len
[static]
 

Put the current year (GMT) in s (e.g. "2005").

Parameters:
s String buffer (allocated) to write year into
len Size of s

long ArUtil::sizeFile const char *  fileName  )  [static]
 

OS-independent way of finding the size of a file.

Returns:
size in bytes. -1 on error.
Parameters:
fileName name of the file to size

void ArUtil::sleep unsigned int  ms  )  [static]
 

Sleep for the given number of milliseconds.

This sleeps for the given number of milliseconds... Note in linux it tries to sleep for 10 ms less than the amount given, which should wind up close to correct... Linux is broken in this regard and sleeps for too long... it sleeps for the ceiling of the current 10 ms range, then for an additional 10 ms... so: 11 to 20 ms sleeps for 30 ms... 21 to 30 ms sleeps for 40 ms... 31 to 40 ms sleeps for 50 ms... this continues on up to the values we care about of.. 81 to 90 ms sleeps for 100 ms... 91 to 100 ms sleeps for 110 ms... so we'll sleep for 10 ms less than we want to, which should put us about right... guh

Parameters:
ms the number of milliseconds to sleep for
Examples:
actsColorFollowingExample.cpp, armExample.cpp, demo.cpp, directMotionExample.cpp, gotoActionExample.cpp, gpsExample.cpp, moduleExample.cpp, netServerExample.cpp, robotConnectionCallbacks.cpp, simpleConnect.cpp, simpleMotionCommands.cpp, soundsQueueExample.cpp, and threadExample.cpp.

std::list< std::string > ArUtil::splitFileName const char *  fileName  )  [static, protected]
 

this splits up a file name (it isn't exported since it'd crash with dlls)

This function assumes the slashes are all heading the right way already.

int ArUtil::strcasecmp const char *  str,
const char *  str2
[static]
 

Finds out if two strings are equal (ignoring case).

This compares two strings ignoring case, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcasecmp const char *  str,
std::string  str2
[static]
 

Finds out if two strings are equal (ignoring case).

This compares two strings ignoring case, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcasecmp std::string  str,
const char *  str2
[static]
 

Finds out if two strings are equal (ignoring case).

This compares two strings ignoring case, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcasecmp std::string  str,
std::string  str2
[static]
 

Finds out if two strings are equal (ignoring case).

This compares two strings ignoring case, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcasequotecmp const std::string &  str1,
const std::string &  str2
[static]
 

Compares two strings (ignoring case and surrounding quotes).

This helper method is primarily used to ignore surrounding quotes when comparing ArArgumentBuilder args.

Returns:
int set to 0 if the two strings are equivalent, a negative number if str1 is "less than" str2, and a postive number if it is "greater than".

int ArUtil::strcmp const char *  str,
const char *  str2
[static]
 

Finds out if two strings are equal.

This compares two strings, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcmp const char *  str,
std::string  str2
[static]
 

Finds out if two strings are equal.

This compares two strings, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcmp std::string  str,
const char *  str2
[static]
 

Finds out if two strings are equal.

This compares two strings, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

int ArUtil::strcmp std::string  str,
std::string  str2
[static]
 

Finds out if two strings are equal.

This compares two strings, it returns an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.

Parameters:
str the string to compare
str2 the second string to compare
Returns:
an integer less than, equal to, or greater than zero if str is found, respectively, to be less than, to match, or be greater than str2.


The documentation for this class was generated from the following files:
Generated on Thu Jan 7 10:34:44 2010 for Aria by  doxygen 1.4.2