Mock Navi: added support for unsigned integer arguments
authorTimo Lotterbach <timo.lotterbach@bmw-carit.de>
Wed, 26 Oct 2011 10:33:01 +0000 (12:33 +0200)
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>
Wed, 26 Oct 2011 10:33:01 +0000 (12:33 +0200)
LayerManagerExamples/EGLX11MockNavigation/include/Argument.h
LayerManagerExamples/EGLX11MockNavigation/src/Argument.cpp

index 8ca610e..0bca6f5 100644 (file)
@@ -43,10 +43,19 @@ private:
 class IntArgument {
 public:
     IntArgument(string name, int default_value, int argc, const char * const argv[]);
-    float get();
+    int get();
 
 private:
     int value;
 };
 
+class UnsignedIntArgument {
+public:
+    UnsignedIntArgument(string name, unsigned int default_value, int argc, const char * const argv[]);
+    unsigned int get();
+
+private:
+    unsigned int value;
+};
+
 #endif
index cf1ff5b..f3cbea0 100644 (file)
@@ -85,7 +85,34 @@ IntArgument::IntArgument(string name, int default_value, int argc, const char *
     }
 }
 
-float IntArgument::get()
+int IntArgument::get()
+{
+    return value;
+}
+
+
+UnsignedIntArgument::UnsignedIntArgument(string name, unsigned int default_value, int argc, const char * const argv[])
+: value(default_value)
+{
+    for (int arg = 1; arg < argc; ++arg)
+    {
+        char dummy[] = "";
+        const char* lpArgNow = argv[arg];
+        const char* lpArgNext = dummy;
+
+        if (arg != argc - 1)
+        {
+            lpArgNext = argv[arg + 1];
+        }
+
+        if ((lpArgNow[0] == '-') && (name == &lpArgNow[1]))
+        {
+            value = atoll(lpArgNext);
+        }
+    }
+}
+
+unsigned int UnsignedIntArgument::get()
 {
     return value;
 }