[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30800 - gnunet/src/ats,
gnunet <=