MAJOR refactoring of Sensors code
[matches/MCTX3420.git] / server / sensors / resource.c
diff --git a/server/sensors/resource.c b/server/sensors/resource.c
new file mode 100644 (file)
index 0000000..fa52562
--- /dev/null
@@ -0,0 +1,30 @@
+#include "resource.h"
+
+#include "../log.h"
+#include "../common.h"
+
+#include <sys/time.h>
+#include <sys/resource.h>
+
+bool Resource_Read(int id, double * value)
+{
+       struct rusage usage;
+       int err = getrusage(RUSAGE_SELF, &usage);
+       if (err != 0)
+       {
+               Log(LOGWARN, "Couldn't get resource information - %s", strerror(errno));
+       }
+       switch (id)
+       {
+               case RESOURCE_CPU_USER:
+                       *value = TIMEVAL_TO_DOUBLE(usage.ru_utime);
+                       break;
+               case RESOURCE_CPU_SYS:
+                       *value = TIMEVAL_TO_DOUBLE(usage.ru_stime);
+                       break;
+               default:
+                       Log(LOGWARN, "Unknown id %d", id);
+                       return false;
+       }
+       return true;
+}

UCC git Repository :: git.ucc.asn.au