Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
7b661a3307c7f61ec9ea1f6eff0e7d0c06dfd3b3
[simgrid.git] / examples / msg / kadeploy / messages.c
1 #include "messages.h"
2
3 msg_task_t task_message_new(e_message_type type, const char *issuer_hostname, const char *mailbox)
4 {
5   message_t msg = xbt_new(s_message_t, 1);
6   msg->type = type;
7   msg->issuer_hostname = issuer_hostname;
8   msg->mailbox = mailbox;
9   msg_task_t task = MSG_task_create(NULL, 0, MESSAGE_SIZE, msg); 
10
11   return task;
12 }
13
14 msg_task_t task_message_chain_new(const char *issuer_hostname, const char *mailbox, const char* prev, const char *next)
15 {
16   msg_task_t task = task_message_new(MESSAGE_BUILD_CHAIN, issuer_hostname, mailbox);
17   message_t msg = MSG_task_get_data(task);
18   msg->prev_hostname = prev;
19   msg->next_hostname = next;
20
21   return task;
22 }
23
24 msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbox, const char *block, unsigned int len)
25 {
26   msg_task_t task = task_message_new(MESSAGE_SEND_DATA, issuer_hostname, mailbox);
27   if (strcmp(mailbox, "host4") == 0) MSG_task_set_category(task, mailbox);
28   message_t msg = MSG_task_get_data(task);
29   msg->data_block = block;
30   msg->data_length = len;
31
32   return task;
33 }
34
35 msg_task_t task_message_end_data_new(const char *issuer_hostname, const char *mailbox)
36 {
37   return task_message_new(MESSAGE_END_DATA, issuer_hostname, mailbox);
38 }
39
40 void task_message_delete(void *task)
41 {
42   message_t msg = MSG_task_get_data(task);
43   xbt_free(msg);
44   MSG_task_destroy(task);
45 }