Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
desperate attempt :
[simgrid.git] / examples / msg / chainsend / broadcaster.h
index b20cee6..c1f9198 100644 (file)
@@ -1,7 +1,13 @@
+/* Copyright (c) 2012-2015. 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 KADEPLOY_BROADCASTER_H
 #define KADEPLOY_BROADCASTER_H
 
-#include "msg/msg.h"
+#include "simgrid/msg.h"
 #include "xbt/sysdep.h"
 
 /* Create a log channel to have nice outputs. */
 #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[]);