gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r30800 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r30800 - gnunet/src/ats
Date: Tue, 19 Nov 2013 15:48:18 +0100

Author: wachs
Date: 2013-11-19 15:48:18 +0100 (Tue, 19 Nov 2013)
New Revision: 30800

Modified:
   gnunet/src/ats/gnunet-service-ats_addresses.c
   gnunet/src/ats/gnunet-service-ats_normalization.c
   gnunet/src/ats/gnunet-service-ats_normalization.h
   gnunet/src/ats/perf_ats_solver.c
Log:
get normalized pref per client


Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c       2013-11-19 14:25:22 UTC 
(rev 30799)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c       2013-11-19 14:48:18 UTC 
(rev 30800)
@@ -1460,6 +1460,10 @@
   struct SummaryContext sum;
   int network_count;
 
+  /* Variables for preferences */
+  int prefs[GNUNET_ATS_PreferenceCount] = GNUNET_ATS_PreferenceType;
+  double pref_val;
+
   GNUNET_assert (NULL != ah);
   GNUNET_assert (NULL != ah->addresses);
 
@@ -1530,12 +1534,32 @@
 
   /* 3) How well does selection match application requirements */
   include_requirements = GNUNET_NO;
-  for (pcur = ah->preference_clients_head; NULL != pcur; pcur = pcur->next)
+  if (0 == ah->pref_clients)
   {
-    /* V metrics*/
+    include_requirements = GNUNET_NO;
+  }
+  else
+  {
+    for (pcur = ah->preference_clients_head; NULL != pcur; pcur = pcur->next)
     {
-      /* V peers */
+      /* V metrics*/
+      for (c = 0; c < GNUNET_ATS_PreferenceCount; c++)
+      {
+
+        if (prefs[c] == GNUNET_ATS_PREFERENCE_END)
+          continue;
+        pref_val = -1.0;
+        pref_val = GAS_normalization_get_preferences_by_client (pcur->client, 
prefs[c]);
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "normalized pref for client %p == 
%.3f\n",
+            pcur->client, pref_val);
+        if (-1.0 == pref_val)
+        {
+          GNUNET_break (0);
+          continue;
+        }
+      }
     }
+    include_requirements = GNUNET_YES;
   }
   /* GUQ */
 

Modified: gnunet/src/ats/gnunet-service-ats_normalization.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_normalization.c   2013-11-19 14:25:22 UTC 
(rev 30799)
+++ gnunet/src/ats/gnunet-service-ats_normalization.c   2013-11-19 14:48:18 UTC 
(rev 30800)
@@ -519,6 +519,30 @@
 }
 
 /**
+ * Get the normalized preference values for a specific peer or
+ * the default values if
+ *
+ * @param id the peer
+ * @return pointer to the values, can be indexed with 
GNUNET_ATS_PreferenceKind,
+ * default preferences if peer does not exist
+ */
+const double
+GAS_normalization_get_preferences_by_client (const void *client, enum 
GNUNET_ATS_PreferenceKind pref)
+{
+  struct PreferenceClient *c_cur;
+  /* Find preference client */
+  for (c_cur = pc_head; NULL != c_cur; c_cur = c_cur->next)
+  {
+    if (client == c_cur->client)
+      break;
+  }
+  if (NULL == c_cur)
+    return -1;
+
+  return 1.0;
+}
+
+/**
  * Get the normalized properties values for a specific peer or
  * the default values if
  *
@@ -922,8 +946,6 @@
 {
   struct PreferenceClient *pc;
   struct PreferenceClient *next_pc;
-  struct PreferencePeer *p;
-  struct PreferencePeer *next_p;
 
   if (GNUNET_SCHEDULER_NO_TASK != aging_task)
   {

Modified: gnunet/src/ats/gnunet-service-ats_normalization.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_normalization.h   2013-11-19 14:25:22 UTC 
(rev 30799)
+++ gnunet/src/ats/gnunet-service-ats_normalization.h   2013-11-19 14:48:18 UTC 
(rev 30800)
@@ -69,7 +69,19 @@
 const double *
 GAS_normalization_get_properties (struct ATS_Address *address);
 
+
 /**
+ * Get the normalized preference values for a specific client
+ *
+ * @param client the client
+ * @param pref desired pref value
+ * @return normalized value
+ */
+const double
+GAS_normalization_get_preferences_by_client (const void *client,
+    enum GNUNET_ATS_PreferenceKind pref);
+
+/**
  * Normalize an updated preference value
  *
  * @param src the client with this preference

Modified: gnunet/src/ats/perf_ats_solver.c
===================================================================
--- gnunet/src/ats/perf_ats_solver.c    2013-11-19 14:25:22 UTC (rev 30799)
+++ gnunet/src/ats/perf_ats_solver.c    2013-11-19 14:48:18 UTC (rev 30800)
@@ -313,7 +313,7 @@
 const double *
 get_preferences_cb (void *cls, const struct GNUNET_PeerIdentity *id)
 {
-  return GAS_normalization_get_preferences (id);
+  return GAS_normalization_get_preferences_by_peer (id);
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]