1 /* Copyright (c) 2012. The SimGrid Team.
2 * All rights reserved. */
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. */
7 #ifndef BITTORRENT_MESSAGES_H_
8 #define BITTORRENT_MESSAGES_H_
11 * Types of messages exchanged between two peers.
18 MESSAGE_NOTINTERESTED,
28 typedef struct s_message {
31 const char *issuer_host_name;
38 } s_message_t, *message_t;
40 * Builds a new value-less message
42 msg_task_t task_message_new(e_message_type type,
43 const char *issuer_host_name,
44 const char *mailbox, int peer_id);
46 * Builds a new "have/piece" message
48 msg_task_t task_message_index_new(e_message_type type,
49 const char *issuer_host_name,
50 const char *mailbox, int peer_id,
53 * Builds a new bitfield message
55 msg_task_t task_message_bitfield_new(const char *issuer_host_name,
56 const char *mailbox, int peer_id,
59 * Builds a new "request" message
61 msg_task_t task_message_request_new(const char *issuer_host_name,
62 const char *mailbox, int peer_id, int index,
63 int block_index, int block_length);
66 * Build a new "piece" message
68 msg_task_t task_message_piece_new(const char *issuer_host_name,
69 const char *mailbox, int peer_id, int index,
70 int stalled, int block_index,
75 void task_message_free(void *);
76 #endif /* BITTORRENT_MESSAGES_H_ */