PUD: cfgTools: review
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 4 Jun 2012 09:32:07 +0000 (11:32 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Thu, 7 Jun 2012 22:30:02 +0000 (00:30 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/pud/src/configTools.c
lib/pud/src/configTools.h

index d22c92d..950413d 100644 (file)
@@ -8,67 +8,76 @@
 /* System includes */
 #include <stdlib.h>
 #include <errno.h>
+#include <assert.h>
 
 /**
- Read an unsigned long long number from a value string
+ Read an unsigned long long number from a string
 
- @param valueName
- the name of the value
- @param value
- the string to convert to a number
- @param valueNumber
- a pointer to the location where to store the number upon successful conversion
+ @param parameterName
+ The name of the parameter, used when reporting errors
+ @param str
+ The string to convert to a number
+ @param dst
+ A pointer to the location where to store the number upon successful conversion
+ Not touched when errors are reported.
 
  @return
  - true on success
  - false otherwise
  */
-bool readULL(const char * valueName, const char * value, unsigned long long * valueNumber) {
+bool readULL(const char * parameterName, const char * str, unsigned long long * dst) {
        char * endPtr = NULL;
-       unsigned long long valueNew;
+       unsigned long long value;
+
+       assert(parameterName != NULL);
+       assert(str != NULL);
+       assert(dst != NULL);
 
        errno = 0;
-       valueNew = strtoull(value, &endPtr, 10);
+       value = strtoull(str, &endPtr, 10);
 
-       if (!((endPtr != value) && (*value != '\0') && (*endPtr == '\0'))) {
+       if (!((endPtr != str) && (*str != '\0') && (*endPtr == '\0'))) {
                /* invalid conversion */
-               pudError(true, "Configured %s (%s) could not be converted to a number", valueName, value);
+               pudError(true, "Value of parameter %s (%s) could not be converted to a number", parameterName, str);
                return false;
        }
 
-       *valueNumber = valueNew;
-
+       *dst = value;
        return true;
 }
 
 /**
- Read a double number from a value string
+ Read a double number from a string
 
- @param valueName
- the name of the value
- @param value
- the string to convert to a number
- @param valueNumber
- a pointer to the location where to store the number upon successful conversion
+ @param parameterName
+ The name of the parameter, used when reporting errors
+ @param str
+ The string to convert to a number
+ @param dst
+ A pointer to the location where to store the number upon successful conversion
+ Not touched when errors are reported.
 
  @return
  - true on success
  - false otherwise
  */
-bool readDouble(const char * valueName, const char * value, double * valueNumber) {
+ bool readDouble(const char * parameterName, const char * str, double * dst) {
        char * endPtr = NULL;
-       double valueNew;
+       double value;
+
+       assert(parameterName != NULL);
+       assert(str != NULL);
+       assert(dst != NULL);
 
        errno = 0;
-       valueNew = strtod(value, &endPtr);
+       value = strtod(str, &endPtr);
 
-       if (!((endPtr != value) && (*value != '\0') && (*endPtr == '\0'))) {
+       if (!((endPtr != str) && (*str != '\0') && (*endPtr == '\0'))) {
                /* invalid conversion */
-               pudError(true, "Configured %s (%s) could not be converted to a number", valueName, value);
+               pudError(true, "Value of parameter %s (%s) could not be converted to a number", parameterName, str);
                return false;
        }
 
-       *valueNumber = valueNew;
-
+       *dst = value;
        return true;
 }
index f1d1ed9..bcbf3a3 100644 (file)
@@ -8,8 +8,8 @@
 /* System includes */
 #include <stdbool.h>
 
-bool readULL(const char * valueName, const char * value, unsigned long long * valueNumber);
+bool readULL(const char * parameterName, const char * str, unsigned long long * dst);
 
-bool readDouble(const char * valueName, const char * value, double * valueNumber);
+bool readDouble(const char * parameterName, const char * str, double * dst);
 
 #endif /* PUD_CONFIGTOOLS_H_ */