Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add kademlia C example
[simgrid.git] / examples / msg / kademlia / answer.h
diff --git a/examples/msg/kademlia/answer.h b/examples/msg/kademlia/answer.h
new file mode 100644 (file)
index 0000000..2e9f585
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (c) 2012. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+#ifndef _KADEMLIA_EXAMPLES_ANSWER_H_
+#define _KADEMLIA_EXAMPLES_ANSWER_H_
+#include <xbt/dynar.h>
+#include "routing_table.h"
+/*
+ * Node query anwser. contains the elements closest
+ * to the id given.
+ */
+typedef struct s_node_answer {
+    unsigned int destination_id;
+  xbt_dynar_t nodes; //Dynar of node_contact_t
+  unsigned int size;
+} s_answer_t, *answer_t;
+
+#include "node.h"
+
+answer_t answer_init(unsigned int destination_id);
+void answer_free(answer_t answer);
+void answer_print(answer_t answer);
+unsigned int answer_merge(answer_t destination, answer_t source);
+void answer_sort(answer_t answer);
+void answer_trim(answer_t answer);
+void answer_add_bucket(bucket_t bucket, answer_t answer);
+unsigned int answer_contains(answer_t answer, unsigned int id);
+unsigned int answer_destination_found(answer_t answer);
+
+#endif /* _KADEMLIA_EXAMPLES_ANSWER_H_ */