1 /* Copyright (c) 2012. The SimGrid Team.
2 * All rights reserved. */
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 #ifndef _MSG_KADEMLIA_EXAMPLES_TASK
7 #define _MSG_KADEMLIA_EXAMPLES_TASK
12 * Types of tasks exchanged
16 TASK_FIND_NODE_ANSWER,
18 TASK_FIND_VALUE_ANSWER,
24 * Data attached with the tasks
26 typedef struct s_task_data {
28 unsigned int sender_id; //Id of the guy who sent the task
29 unsigned int destination_id; //Id we are trying to find, if needed.
30 answer_t answer; //Answer to the request made, if needed.
31 char *answer_to; // mailbox to send the answer to (if not an answer).
32 const char *issuer_host_name; // used for logging
33 } s_task_data_t, *task_data_t;
35 //Task handling functions
36 msg_task_t task_new_find_node(unsigned int sender_id,
37 unsigned int destination_id, char *mailbox,
38 const char *hostname);
40 msg_task_t task_new_find_node_answer(unsigned int sender_id,
41 unsigned int destination_id,
42 answer_t answer, char *mailbox,
43 const char *hostname);
45 msg_task_t task_new_ping(unsigned int sender_id, char *mailbox,
46 const char *hostname);
47 msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox,
48 const char *hostname);
49 void task_free(msg_task_t task);
50 void task_free_v(void *task);
51 #endif /* _MSG_KADEMLIA_EXAMPLES_TASK */