Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright headers.
[simgrid.git] / teshsuite / msg / app-chainsend / messages.h
1 /* Copyright (c) 2012-2018. The SimGrid Team.
2  * All rights reserved.                                                     */
3
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
7 #ifndef MESSAGES_H
8 #define MESSAGES_H
9
10 #include "simgrid/msg.h"
11
12 #define MESSAGE_BUILD_CHAIN_SIZE 40
13 #define MESSAGE_SEND_DATA_HEADER_SIZE 1
14 #define MESSAGE_END_DATA_SIZE 1
15
16 /* Messages enum */
17 typedef enum { MESSAGE_BUILD_CHAIN = 0, MESSAGE_SEND_DATA } e_message_type;
18
19 /* Message struct */
20 typedef struct s_message {
21   e_message_type type;
22   char* prev_hostname;
23   char* next_hostname;
24   const char* data_block;
25   unsigned int data_length;
26   unsigned int num_pieces;
27 } s_message_t;
28
29 typedef s_message_t* message_t;
30
31 /* Message methods */
32 msg_task_t task_message_new(e_message_type type, unsigned int len);
33 msg_task_t task_message_chain_new(const char* prev, const char* next, const unsigned int num_pieces);
34 msg_task_t task_message_data_new(const char* block, unsigned int len);
35 void task_message_delete(void*);
36
37 #endif /* MESSAGES_H */