#include "iterator.h"
#include "common.h"
-#define PIECE_COUNT 50
+/* Connection parameters */
+#define MAX_PENDING_SENDS 10
+
+/* Default values for the ``file'' details */
+#define PIECE_SIZE 65536
+#define PIECE_COUNT 16384
+
+/* Broadcaster struct */
+typedef struct s_broadcaster {
+ const char *first;
+ int piece_count;
+ int current_piece;
+ xbt_dynar_t host_list;
+ xbt_dynar_iterator_t it;
+ int max_pending_sends;
+ xbt_dynar_t pending_sends;
+} s_broadcaster_t, *broadcaster_t;
xbt_dynar_t build_hostlist_from_hostcount(int hostcount);
-/*xbt_dynar_t build_hostlist_from_argv(int argc, char *argv[]);*/
/* Broadcaster: helper functions */
-int broadcaster_build_chain(const char **first, xbt_dynar_t host_list, xbt_dynar_iterator_t it);
-int broadcaster_send_file(const char *first);
-int broadcaster_finish(xbt_dynar_iterator_t it);
+broadcaster_t broadcaster_init(xbt_dynar_t host_list, unsigned int piece_count);
+int broadcaster_build_chain(broadcaster_t bc);
+int broadcaster_send_file(broadcaster_t bc);
/* Tasks */
int broadcaster(int argc, char *argv[]);