aboutsummaryrefslogtreecommitdiff
path: root/src/peerstore/perf_peerstore_store.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/peerstore/perf_peerstore_store.c')
-rw-r--r--src/peerstore/perf_peerstore_store.c76
1 files changed, 33 insertions, 43 deletions
diff --git a/src/peerstore/perf_peerstore_store.c b/src/peerstore/perf_peerstore_store.c
index bdf70272c..e97699fe2 100644
--- a/src/peerstore/perf_peerstore_store.c
+++ b/src/peerstore/perf_peerstore_store.c
@@ -40,78 +40,68 @@ static char *v = "test_peerstore_stress_val";
40int count = 0; 40int count = 0;
41 41
42void 42void
43disconnect() 43disconnect ()
44{ 44{
45 if(NULL != h) 45 if (NULL != h)
46 GNUNET_PEERSTORE_disconnect(h, GNUNET_YES); 46 GNUNET_PEERSTORE_disconnect (h, GNUNET_YES);
47 GNUNET_SCHEDULER_shutdown(); 47 GNUNET_SCHEDULER_shutdown ();
48} 48}
49 49
50
50void 51void
51store() 52store ()
52{ 53{
53 GNUNET_PEERSTORE_store(h, 54 GNUNET_PEERSTORE_store (h, ss, &p, k, v, strlen (v) + 1,
54 ss, 55 GNUNET_TIME_UNIT_FOREVER_ABS,
55 &p, 56 (count ==
56 k, 57 0) ? GNUNET_PEERSTORE_STOREOPTION_REPLACE :
57 v, 58 GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, NULL, NULL);
58 strlen(v) + 1,
59 GNUNET_TIME_UNIT_FOREVER_ABS,
60 (count == 0) ? GNUNET_PEERSTORE_STOREOPTION_REPLACE : GNUNET_PEERSTORE_STOREOPTION_MULTIPLE,
61 NULL,
62 NULL);
63 count++; 59 count++;
64} 60}
65 61
62
66static int 63static int
67watch_cb(void *cls, 64watch_cb (void *cls, struct GNUNET_PEERSTORE_Record *record, char *emsg)
68 struct GNUNET_PEERSTORE_Record *record,
69 char *emsg)
70{ 65{
71 GNUNET_assert(NULL == emsg); 66 GNUNET_assert (NULL == emsg);
72 if(STORES == count) 67 if (STORES == count)
73 { 68 {
74 ok = 0; 69 ok = 0;
75 disconnect(); 70 disconnect ();
76 } 71 }
77 else 72 else
78 store(); 73 store ();
79 return GNUNET_YES; 74 return GNUNET_YES;
80} 75}
81 76
77
82static void 78static void
83run (void *cls, 79run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
84 const struct GNUNET_CONFIGURATION_Handle *cfg, 80 struct GNUNET_TESTING_Peer *peer)
85 struct GNUNET_TESTING_Peer *peer)
86{ 81{
87 memset (&p, 5, sizeof (p)); 82 memset (&p, 5, sizeof (p));
88 h = GNUNET_PEERSTORE_connect(cfg); 83 h = GNUNET_PEERSTORE_connect (cfg);
89 GNUNET_assert(NULL != h); 84 GNUNET_assert (NULL != h);
90 GNUNET_PEERSTORE_watch(h, 85 GNUNET_PEERSTORE_watch (h, ss, &p, k, &watch_cb, NULL);
91 ss, 86 store ();
92 &p,
93 k,
94 &watch_cb,
95 NULL);
96 store();
97} 87}
98 88
89
99int 90int
100main (int argc, char *argv[]) 91main (int argc, char *argv[])
101{ 92{
102 struct GNUNET_TIME_Absolute start; 93 struct GNUNET_TIME_Absolute start;
103 struct GNUNET_TIME_Relative diff; 94 struct GNUNET_TIME_Relative diff;
104 95
105 start = GNUNET_TIME_absolute_get(); 96 start = GNUNET_TIME_absolute_get ();
106 if (0 != GNUNET_TESTING_service_run ("perf-peerstore-store", 97 if (0 !=
107 "peerstore", 98 GNUNET_TESTING_service_run ("perf-peerstore-store", "peerstore",
108 "test_peerstore_api_data.conf", 99 "test_peerstore_api_data.conf", &run, NULL))
109 &run, NULL))
110 return 1; 100 return 1;
111 diff = GNUNET_TIME_absolute_get_duration(start); 101 diff = GNUNET_TIME_absolute_get_duration (start);
112 fprintf(stderr, "Stored and retrieved %d records in %s (%s).\n", 102 fprintf (stderr, "Stored and retrieved %d records in %s (%s).\n", STORES,
113 STORES, GNUNET_STRINGS_relative_time_to_string(diff, GNUNET_YES), 103 GNUNET_STRINGS_relative_time_to_string (diff, GNUNET_YES),
114 GNUNET_STRINGS_relative_time_to_string(diff, GNUNET_NO)); 104 GNUNET_STRINGS_relative_time_to_string (diff, GNUNET_NO));
115 return ok; 105 return ok;
116} 106}
117 107