Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
177b4e85b0228b1648fac2c800ff56036d945740
[simgrid.git] / examples / msg / chainsend / 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) 
28   //MSG_task_set_category(task, mailbox);
29   message_t msg = MSG_task_get_data(task);
30   msg->data_block = block;
31   msg->data_length = len;
32
33   return task;
34 }
35
36 msg_task_t task_message_end_data_new(const char *issuer_hostname, const char *mailbox)
37 {
38   return task_message_new(MESSAGE_END_DATA, issuer_hostname, mailbox);
39 }
40
41 void task_message_delete(void *task)
42 {
43   message_t msg = MSG_task_get_data(task);
44   xbt_free(msg);
45   MSG_task_destroy(task);
46 }