Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'mc' into mc++
[simgrid.git] / examples / msg / kademlia / answer.h
1 /* Copyright (c) 2012, 2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef _KADEMLIA_EXAMPLES_ANSWER_H_
8 #define _KADEMLIA_EXAMPLES_ANSWER_H_
9 #include <xbt/dynar.h>
10 #include "routing_table.h"
11 /*
12  * Node query anwser. contains the elements closest
13  * to the id given.
14  */
15 typedef struct s_node_answer {
16   unsigned int destination_id;
17   xbt_dynar_t nodes;            //Dynar of node_contact_t
18   unsigned int size;
19 } s_answer_t, *answer_t;
20
21 #include "node.h"
22
23 answer_t answer_init(unsigned int destination_id);
24 void answer_free(answer_t answer);
25 void answer_print(answer_t answer);
26 unsigned int answer_merge(answer_t destination, answer_t source);
27 void answer_sort(answer_t answer);
28 void answer_trim(answer_t answer);
29 void answer_add_bucket(bucket_t bucket, answer_t answer);
30 unsigned int answer_contains(answer_t answer, unsigned int id);
31 unsigned int answer_destination_found(answer_t answer);
32
33 #endif                          /* _KADEMLIA_EXAMPLES_ANSWER_H_ */