3 msg_task_t task_message_new(e_message_type type, unsigned int len, const char *issuer_hostname, const char *mailbox)
5 message_t msg = xbt_new(s_message_t, 1);
7 msg->issuer_hostname = xbt_strdup(issuer_hostname);
8 msg->mailbox = xbt_strdup(mailbox);
9 msg->prev_hostname = NULL;
10 msg->next_hostname = NULL;
11 msg_task_t task = MSG_task_create(NULL, 0, len, msg);
16 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)
18 msg_task_t task = task_message_new(MESSAGE_BUILD_CHAIN, MESSAGE_BUILD_CHAIN_SIZE, issuer_hostname, mailbox);
19 message_t msg = MSG_task_get_data(task);
20 msg->prev_hostname = xbt_strdup(prev);
21 msg->next_hostname = xbt_strdup(next);
22 msg->num_pieces = num_pieces;
27 msg_task_t task_message_data_new(const char *issuer_hostname, const char *mailbox, const char *block, unsigned int len)
29 msg_task_t task = task_message_new(MESSAGE_SEND_DATA, MESSAGE_SEND_DATA_HEADER_SIZE + len, issuer_hostname, mailbox);
30 message_t msg = MSG_task_get_data(task);
31 msg->data_block = block;
32 msg->data_length = len;
37 void task_message_delete(void *task)
39 message_t msg = MSG_task_get_data(task);
40 xbt_free(msg->issuer_hostname);
41 xbt_free(msg->mailbox);
43 MSG_task_destroy(task);