-/* Copyright (c) 2012-2017. The SimGrid Team.
+/* Copyright (c) 2012-2019. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
RngStream stream = (RngStream)MSG_host_get_data(MSG_host_self());
// Building peers array
- xbt_dynar_t peers_list = xbt_dynar_new(sizeof(const char*), NULL);
+ xbt_dynar_t peers_list = xbt_dynar_new(sizeof(int), NULL);
XBT_INFO("Tracker launched.");
tracker_task_data_t data = MSG_task_get_data(task_received);
// Add the peer to our peer list.
if (is_in_list(peers_list, data->peer_id) == 0) {
- xbt_dynar_push(peers_list, &data->peer_id);
+ xbt_dynar_push_as(peers_list, int, data->peer_id);
}
// Sending peers to the peer
- const char* next_peer;
+ int next_peer;
int peers_length = xbt_dynar_length(peers_list);
for (int i = 0; i < MAXIMUM_PEERS && i < peers_length; i++) {
do {
- xbt_dynar_get_cpy(peers_list, RngStream_RandInt(stream, 0, peers_length - 1), &next_peer);
+ next_peer = xbt_dynar_get_as(peers_list, RngStream_RandInt(stream, 0, peers_length - 1), int);
} while (is_in_list(data->peers, next_peer));
- xbt_dynar_push(data->peers, &next_peer);
+ xbt_dynar_push_as(data->peers, int, next_peer);
}
// setting the interval
data->interval = TRACKER_QUERY_INTERVAL;
* Build a new task for the tracker.
* @param issuer_host_name Hostname of the issuer. For debugging purposes
*/
-tracker_task_data_t tracker_task_data_new(const char* issuer_host_name, const char* mailbox, const char* peer_id,
- int uploaded, int downloaded, int left)
+tracker_task_data_t tracker_task_data_new(const char* issuer_host_name, const char* mailbox, int peer_id, int uploaded,
+ int downloaded, int left)
{
tracker_task_data_t task = xbt_new(s_tracker_task_data_t, 1);
task->downloaded = downloaded;
task->left = left;
- task->peers = xbt_dynar_new(sizeof(const char*), NULL);
+ task->peers = xbt_dynar_new(sizeof(int), NULL);
return task;
}
*/
void tracker_task_data_free(tracker_task_data_t task)
{
- xbt_dynar_free_container(&task->peers);
+ xbt_dynar_free(&task->peers);
xbt_free(task);
}
* @param peers dynar containing the peers
* @param id identifier of the peer to test
*/
-int is_in_list(xbt_dynar_t peers, const char* id)
+int is_in_list(xbt_dynar_t peers, int id)
{
return xbt_dynar_member(peers, &id);
}