Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
chainsend: remove end of data message, send that information at chain initialization
[simgrid.git] / examples / msg / chainsend / messages.c
1 #include "messages.h"
2
3 msg_task_t task_message_new(e_message_type type, unsigned int len, 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, len, 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, const unsigned int num_pieces)
15 {
16   msg_task_t task = task_message_new(MESSAGE_BUILD_CHAIN, MESSAGE_BUILD_CHAIN_SIZE, issuer_hostname, mailbox);
17   message_t msg = MSG_task_get_data(task);
18   msg->prev_hostname = prev;
19   msg->next_hostname = next;
20   msg->num_pieces = num_pieces;
21
22   return task;
23 }
24
25 msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbox, const char *block, unsigned int len)
26 {
27   msg_task_t task = task_message_new(MESSAGE_SEND_DATA, MESSAGE_SEND_DATA_HEADER_SIZE + len, issuer_hostname, 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 void task_message_delete(void *task)
36 {
37   message_t msg = MSG_task_get_data(task);
38   xbt_free(msg);
39   MSG_task_destroy(task);
40 }