X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/65b0ef3e4abf59f79ff89fa7644aff2451922729..613cd4ffa7ffbfdd4f21bf7ecb6053daf666b95e:/examples/msg/bittorrent/peer.h diff --git a/examples/msg/bittorrent/peer.h b/examples/msg/bittorrent/peer.h index 5c40025e50..e64a2d2357 100644 --- a/examples/msg/bittorrent/peer.h +++ b/examples/msg/bittorrent/peer.h @@ -1,8 +1,9 @@ -/* Copyright (c) 2012. The SimGrid Team. +/* Copyright (c) 2012-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ + #ifndef BITTORRENT_PEER_H #define BITTORRENT_PEER_H #include @@ -27,7 +28,7 @@ typedef struct s_peer { xbt_dict_t peers; //peers list xbt_dict_t active_peers; //active peers list - int round; //current round for the chocking algortihm. + int round; //current round for the chocking algorithm. char mailbox[MAILBOX_SIZE]; //peer mailbox. @@ -42,7 +43,6 @@ typedef struct s_peer { double begin_receive_time; //time when the receiving communication has begun, useful for calculating host speed. - xbt_dynar_t pending_sends; // list of sends being delivered } s_peer_t, *peer_t; /** @@ -59,13 +59,9 @@ void peer_free(peer_t peer); int has_finished(char *bitfield); -void handle_pending_sends(peer_t peer); void handle_message(peer_t peer, msg_task_t task); -void wait_for_pieces(peer_t peer, double deadline); - void update_pieces_count_from_bitfield(peer_t peer, char *bitfield); -void update_current_piece(peer_t peer); void update_choked_peers(peer_t peer); void update_interested_after_receive(peer_t peer); @@ -76,9 +72,20 @@ int piece_complete(peer_t peer, int index); int get_first_block(peer_t peer, int piece); -void send_requests_to_peer(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); +int in_current_pieces(peer_t peer, int piece); +int partially_downloaded_piece(peer_t peer, connection_t remote_peer); + +void request_new_piece_to_peer(peer_t peer, connection_t remote_peer); +void send_request_to_peer(peer_t peer, connection_t remote_peer, int piece); +void remove_current_piece(peer_t peer, connection_t remote_peer, + int current_piece); + +void update_active_peers_set(peer_t peer, connection_t remote_peer); +int select_piece_to_download(peer_t peer, connection_t remote_peer); -void send_interested_to_peers(peer_t peer); void send_handshake_all(peer_t peer); void send_interested(peer_t peer, const char *mailbox); @@ -92,8 +99,7 @@ void send_have(peer_t peer, int piece); void send_request(peer_t peer, const char *mailbox, int piece, int block_index, int block_length); -void send_piece(peer_t peer, const char *mailbox, int piece, int stalled, +void send_piece(peer_t peer, const char *mailbox, int piece, int block_index, int block_length); -int in_current_pieces(peer_t peer, int piece); #endif /* BITTORRENT_PEER_H */