task-factory: load_avg task 74/182374/3
authorMichal Kolodziejski <m.kolodziejs@samsung.com>
Fri, 22 Jun 2018 09:20:09 +0000 (11:20 +0200)
committerMichal Kolodziejski <m.kolodziejs@samsung.com>
Fri, 22 Jun 2018 12:09:36 +0000 (14:09 +0200)
Change-Id: I6601e0957dff24fe2bef0ec629fe1932de93ad2e
Signed-off-by: Michal Kolodziejski <m.kolodziejs@samsung.com>
src/task-factory.c

index 1805039..8334011 100644 (file)
 #include "err-check.h"
 #include "macros.h"
 
-static task_t *create_system_report_task(config_options_e options, int frequency);
+static task_t *create_system_report_task(config_options_e options);
+static task_t *create_load_avg_report_task();
+
 static void execute_scan_system_memory(task_t *task);
 static void execute_scan_system_cpu(task_t *task);
+static void execute_scan_load_avg(task_t *task);
+
 static void send_report(char *report);
 static void release_system_task(task_t *task);
 
@@ -35,16 +39,17 @@ task_t *task_factory_create_single(const config_t *config)
     switch(config->scope)
     {
         case SYSTEM:
-            return create_system_report_task(config->data.system.options, config->frequency);
+            return create_system_report_task(config->data.system.options);
+        case LOAD_AVG:
+            return create_load_avg_report_task();
         case APPS:
         case TOP:
-        case LOAD_AVG:
         default:
             return NULL;
     }
 }
 
-static task_t *create_system_report_task(config_options_e options, int frequency)
+static task_t *create_system_report_task(config_options_e options)
 {
     system_task_t *_system_task = (system_task_t *)g_malloc(sizeof(system_task_t));
 
@@ -68,6 +73,16 @@ static task_t *create_system_report_task(config_options_e options, int frequency
     return &_system_task->task;
 }
 
+static task_t *create_load_avg_report_task()
+{
+    task_t *_load_avg_task = (task_t *)g_malloc(sizeof(task_t));
+
+    _load_avg_task->execute = execute_scan_load_avg;
+    _load_avg_task->release = NULL;
+
+    return _load_avg_task;
+}
+
 static void execute_scan_system_memory(task_t *task)
 {
     ON_NULL_RETURN(task);
@@ -100,6 +115,20 @@ static void execute_scan_system_cpu(task_t *task)
     g_free(json_report);
 }
 
+static void execute_scan_load_avg(task_t *task)
+{
+    ON_NULL_RETURN(task);
+
+    struct system_load_average_report report;
+
+    int ret = report_generator_generate_load_average_report(&report);
+    ON_TRUE_RETURN(ret != 0);
+
+    char *json_report = report_json_serializer_serialize_system_load_average_report(&report);
+    send_report(json_report);
+    g_free(json_report);
+}
+
 static void send_report(char *report)
 {
     //TODO send report here