/** Peer main function */
int peer(int argc, char *argv[]);
/** Peer main function */
int peer(int argc, char *argv[]);
void leech_loop(peer_t peer, double deadline);
void seed_loop(peer_t peer, double deadline);
void leech_loop(peer_t peer, double deadline);
void seed_loop(peer_t peer, double deadline);
int piece_complete(peer_t peer, int index);
int get_first_block(peer_t peer, int piece);
int piece_complete(peer_t peer, int index);
int get_first_block(peer_t peer, int piece);
int nb_interested_peers(peer_t peer);
int is_interested(peer_t peer, connection_t remote_peer);
int is_interested_and_free(peer_t peer, connection_t remote_peer);
int nb_interested_peers(peer_t peer);
int is_interested(peer_t peer, connection_t remote_peer);
int is_interested_and_free(peer_t peer, connection_t remote_peer);