src/parasol/lib/paraLib.c 1.33

1.33 2009/12/04 23:50:23 markd
added -cpu and -ram to the parasol add jobs command
Index: src/parasol/lib/paraLib.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/parasol/lib/paraLib.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -b -B -U 4 -r1.32 -r1.33
--- src/parasol/lib/paraLib.c	21 May 2008 21:59:37 -0000	1.32
+++ src/parasol/lib/paraLib.c	4 Dec 2009 23:50:23 -0000	1.33
@@ -92,4 +92,38 @@
 {
 logDaemonize(progName);
 }
 
+long long paraParseRam(char *ram)
+/* Parse RAM expression like 2000000, 2t, 2g, 2m, 2k
+ * Returns long long number of bytes, or -1 for error
+ * The value of input variable ram may be modified. */
+{
+long long result = -1, factor = 1;
+int len = strlen(ram);
+int i;
+char saveC = ' ';
+if (len == 0)
+    return result;
+if (ram[len-1] == 't')
+    factor = (long long)1024 * 1024 * 1024 * 1024;
+else if (ram[len-1] == 'g')
+    factor = 1024 * 1024 * 1024;
+else if (ram[len-1] == 'm')
+    factor = 1024 * 1024;
+else if (ram[len-1] == 'k')
+    factor = 1024;
+if (factor != 1)
+    {
+    --len;
+    saveC = ram[len];
+    ram[len] = 0;
+    }
+for (i=0; i<len; ++i)
+    if (!isdigit(ram[i]))
+	return result;
+result = factor * sqlLongLong(ram);
+if (factor != 1)
+    ram[len] = saveC;
+return result;
+}
+