REST/NAMESTORE: rework API
[oweals/gnunet.git] / src / ats-tests / ats-testing-experiment.c
index ae92b58c2ed07deb3e8211dcc5bca5e4cd58bb6a..b91c652b0d8e4fa8ae50e644887997809995c1b3 100644 (file)
@@ -1,21 +1,21 @@
 /*
  This file is part of GNUnet.
- (C) 2010-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010-2013 GNUnet e.V.
 
- GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
 
  GNUnet is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- General Public License for more details.
Affero General Public License for more details.
 
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING.  If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ You should have received a copy of the GNU Affero General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
  */
 /**
  * @file ats-tests/ats-testing-experiment.c
@@ -86,9 +86,11 @@ free_experiment (struct Experiment *e)
   GNUNET_free (e);
 }
 
+
 static int
-load_episode (struct Experiment *e, struct Episode *cur,
-    struct GNUNET_CONFIGURATION_Handle *cfg)
+load_episode (struct Experiment *e,
+              struct Episode *cur,
+              struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   struct GNUNET_ATS_TEST_Operation *o;
   char *sec_name;
@@ -97,13 +99,14 @@ load_episode (struct Experiment *e, struct Episode *cur,
   char *type;
   char *pref;
   int op_counter = 0;
+
   fprintf (stderr, "Parsing episode %u\n",cur->id);
-  GNUNET_asprintf(&sec_name, "episode-%u", cur->id);
+  GNUNET_asprintf (&sec_name, "episode-%u", cur->id);
 
   while (1)
   {
     /* Load operation */
-    GNUNET_asprintf(&op_name, "op-%u-operation", op_counter);
+    GNUNET_asprintf (&op_name, "op-%u-operation", op_counter);
     if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string(cfg,
         sec_name, op_name, &op))
     {
@@ -134,6 +137,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
           op_counter, op, cur->id);
       GNUNET_free (op);
       GNUNET_free (op_name);
+      GNUNET_free (o);
+      GNUNET_free (sec_name);
       return GNUNET_SYSERR;
     }
     GNUNET_free (op_name);
@@ -147,6 +152,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
           op_counter, op, cur->id);
       GNUNET_free (op);
       GNUNET_free (op_name);
+      GNUNET_free (o);
+      GNUNET_free (sec_name);
       return GNUNET_SYSERR;
     }
     if (o->src_id > (e->num_masters - 1))
@@ -155,6 +162,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
           o->src_id, op_counter, op, cur->id);
       GNUNET_free (op);
       GNUNET_free (op_name);
+      GNUNET_free (o);
+      GNUNET_free (sec_name);
       return GNUNET_SYSERR;
     }
     GNUNET_free (op_name);
@@ -168,6 +177,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
           op_counter, op, cur->id);
       GNUNET_free (op);
       GNUNET_free (op_name);
+      GNUNET_free (o);
+      GNUNET_free (sec_name);
       return GNUNET_SYSERR;
     }
     if (o->dest_id > (e->num_slaves - 1))
@@ -176,6 +187,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
           o->dest_id, op_counter, op, cur->id);
       GNUNET_free (op);
       GNUNET_free (op_name);
+      GNUNET_free (o);
+      GNUNET_free (sec_name);
       return GNUNET_SYSERR;
     }
     GNUNET_free (op_name);
@@ -183,24 +196,25 @@ load_episode (struct Experiment *e, struct Episode *cur,
     GNUNET_asprintf(&op_name, "op-%u-type", op_counter);
     if ( (GNUNET_SYSERR != GNUNET_CONFIGURATION_get_value_string(cfg,
             sec_name, op_name, &type)) &&
-        ((STOP_SEND != o->type) || (STOP_PREFERENCE != o->type)))
+         (STOP_SEND != o->type) &&
+         (STOP_PREFERENCE != o->type) )
     {
       /* Load arguments for set_rate, start_send, set_preference */
       if (0 == strcmp (type, "constant"))
       {
-        o->tg_type = GNUNET_ATS_TEST_TG_CONSTANT;
+        o->gen_type = GNUNET_ATS_TEST_TG_CONSTANT;
       }
       else if (0 == strcmp (type, "linear"))
       {
-        o->tg_type = GNUNET_ATS_TEST_TG_LINEAR;
+        o->gen_type = GNUNET_ATS_TEST_TG_LINEAR;
       }
       else if (0 == strcmp (type, "sinus"))
       {
-        o->tg_type = GNUNET_ATS_TEST_TG_SINUS;
+        o->gen_type = GNUNET_ATS_TEST_TG_SINUS;
       }
       else if (0 == strcmp (type, "random"))
       {
-        o->tg_type = GNUNET_ATS_TEST_TG_RANDOM;
+        o->gen_type = GNUNET_ATS_TEST_TG_RANDOM;
       }
       else
       {
@@ -209,6 +223,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
         GNUNET_free (type);
         GNUNET_free (op);
         GNUNET_free (op_name);
+        GNUNET_free (sec_name);
+        GNUNET_free (o);
         return GNUNET_SYSERR;
       }
       GNUNET_free (op_name);
@@ -223,6 +239,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
         GNUNET_free (type);
         GNUNET_free (op);
         GNUNET_free (op_name);
+        GNUNET_free (sec_name);
+        GNUNET_free (o);
         return GNUNET_SYSERR;
       }
       GNUNET_free (op_name);
@@ -232,15 +250,17 @@ load_episode (struct Experiment *e, struct Episode *cur,
       if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (cfg,
           sec_name, op_name, &o->max_rate))
       {
-        if ((GNUNET_ATS_TEST_TG_LINEAR == o->tg_type) ||
-            (GNUNET_ATS_TEST_TG_RANDOM == o->tg_type) ||
-            (GNUNET_ATS_TEST_TG_SINUS == o->tg_type))
+        if ((GNUNET_ATS_TEST_TG_LINEAR == o->gen_type) ||
+            (GNUNET_ATS_TEST_TG_RANDOM == o->gen_type) ||
+            (GNUNET_ATS_TEST_TG_SINUS == o->gen_type))
         {
           fprintf (stderr, "Missing max rate in operation %u `%s' in episode %u\n",
               op_counter, op, cur->id);
           GNUNET_free (type);
           GNUNET_free (op_name);
           GNUNET_free (op);
+          GNUNET_free (o);
+          GNUNET_free (sec_name);
           return GNUNET_SYSERR;
         }
       }
@@ -267,6 +287,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
               GNUNET_free (type);
               GNUNET_free (op_name);
               GNUNET_free (op);
+              GNUNET_free (o);
+              GNUNET_free (sec_name);
               return GNUNET_SYSERR;
           }
           GNUNET_free (op_name);
@@ -282,6 +304,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
               GNUNET_free (op_name);
               GNUNET_free (op);
               GNUNET_free_non_null (pref);
+              GNUNET_free (o);
+              GNUNET_free (sec_name);
               return GNUNET_SYSERR;
           }
 
@@ -296,8 +320,9 @@ load_episode (struct Experiment *e, struct Episode *cur,
               GNUNET_free (type);
               GNUNET_free (op_name);
               GNUNET_free (op);
-              GNUNET_free (pref);
               GNUNET_free_non_null (pref);
+              GNUNET_free (o);
+              GNUNET_free (sec_name);
               return GNUNET_SYSERR;
           }
           GNUNET_free (pref);
@@ -306,8 +331,8 @@ load_episode (struct Experiment *e, struct Episode *cur,
     }
 
     /* Safety checks */
-    if ((GNUNET_ATS_TEST_TG_LINEAR == o->tg_type) ||
-        (GNUNET_ATS_TEST_TG_SINUS == o->tg_type))
+    if ((GNUNET_ATS_TEST_TG_LINEAR == o->gen_type) ||
+        (GNUNET_ATS_TEST_TG_SINUS == o->gen_type))
     {
       if ((o->max_rate - o->base_rate) > o->base_rate)
       {
@@ -338,6 +363,7 @@ load_episode (struct Experiment *e, struct Episode *cur,
   return GNUNET_OK;
 }
 
+
 static int
 load_episodes (struct Experiment *e, struct GNUNET_CONFIGURATION_Handle *cfg)
 {
@@ -390,23 +416,25 @@ load_episodes (struct Experiment *e, struct GNUNET_CONFIGURATION_Handle *cfg)
   return e_counter;
 }
 
+
 static void
-timeout_experiment (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_experiment (void *cls)
 {
   struct Experiment *e = cls;
-  e->experiment_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  e->experiment_timeout_task = NULL;
   fprintf (stderr, "Experiment timeout!\n");
 
-  if (GNUNET_SCHEDULER_NO_TASK != e->episode_timeout_task)
+  if (NULL != e->episode_timeout_task)
   {
     GNUNET_SCHEDULER_cancel (e->episode_timeout_task);
-    e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+    e->episode_timeout_task = NULL;
   }
 
   e->e_done_cb (e, GNUNET_TIME_absolute_get_duration(e->start_time),
       GNUNET_SYSERR);
 }
 
+
 static void
 enforce_start_send (struct GNUNET_ATS_TEST_Operation *op)
 {
@@ -437,7 +465,7 @@ enforce_start_send (struct GNUNET_ATS_TEST_Operation *op)
   }
 
   partner->tg = GNUNET_ATS_TEST_generate_traffic_start(peer, partner,
-      op->tg_type, op->base_rate, op->max_rate, op->period,
+      op->gen_type, op->base_rate, op->max_rate, op->period,
       GNUNET_TIME_UNIT_FOREVER_REL);
 }
 
@@ -495,7 +523,7 @@ enforce_start_preference (struct GNUNET_ATS_TEST_Operation *op)
   }
 
   partner->pg = GNUNET_ATS_TEST_generate_preferences_start(peer, partner,
-      op->tg_type, op->base_rate, op->max_rate, op->period, op->frequency,
+      op->gen_type, op->base_rate, op->max_rate, op->period, op->frequency,
       op->pref_type);
 }
 
@@ -548,11 +576,13 @@ static void enforce_episode (struct Episode *ep)
   }
 }
 
+
 static void
-timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
+timeout_episode (void *cls)
 {
   struct Experiment *e = cls;
-  e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+
+  e->episode_timeout_task = NULL;
   if (NULL != e->ep_done_cb)
     e->ep_done_cb (e->cur);
 
@@ -562,10 +592,10 @@ timeout_episode (void *cls, const struct GNUNET_SCHEDULER_TaskContext* tc)
   {
     /* done */
     fprintf (stderr, "Last episode done!\n");
-    if (GNUNET_SCHEDULER_NO_TASK != e->experiment_timeout_task)
+    if (NULL != e->experiment_timeout_task)
     {
       GNUNET_SCHEDULER_cancel (e->experiment_timeout_task);
-      e->experiment_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+      e->experiment_timeout_task = NULL;
     }
     e->e_done_cb (e, GNUNET_TIME_absolute_get_duration(e->start_time), GNUNET_OK);
     return;
@@ -610,7 +640,7 @@ GNUNET_ATS_TEST_experimentation_run (struct Experiment *e,
 
 
 struct Experiment *
-GNUNET_ATS_TEST_experimentation_load (char *filename)
+GNUNET_ATS_TEST_experimentation_load (const char *filename)
 {
   struct Experiment *e;
   struct GNUNET_CONFIGURATION_Handle *cfg;
@@ -702,18 +732,17 @@ GNUNET_ATS_TEST_experimentation_load (char *filename)
 void
 GNUNET_ATS_TEST_experimentation_stop (struct Experiment *e)
 {
-  if (GNUNET_SCHEDULER_NO_TASK != e->experiment_timeout_task)
+  if (NULL != e->experiment_timeout_task)
   {
     GNUNET_SCHEDULER_cancel (e->experiment_timeout_task);
-    e->experiment_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+    e->experiment_timeout_task = NULL;
   }
-  if (GNUNET_SCHEDULER_NO_TASK != e->episode_timeout_task)
+  if (NULL != e->episode_timeout_task)
   {
     GNUNET_SCHEDULER_cancel (e->episode_timeout_task);
-    e->episode_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+    e->episode_timeout_task = NULL;
   }
   free_experiment (e);
 }
 
 /* end of file ats-testing-experiment.c*/
-