--- /dev/null
+#!/bin/bash
+#
+# 2010 Razvan Deaconescu, razvan.deaconescu@cs.pub.ro
+#
+# Schedule clients
+# The script
+# * starts/stops a client
+# * manages when client completes
+
+if [ ! $# -le 3 ]; then
+ echo "usage: $0 client-type torrent-file periods"
+ exit 1
+fi
+
+# Read the global configuration variables
+source ../ConfigFiles/globalconfig.txt
+
+client_type=$1
+torrent_file=$2
+
+shift 2
+periods=$@
+
+client_pid=0
+
+declare start_time
+declare stop_time
+declare -a suspend_resume
+
+parse_periods()
+{
+ local tmp_array=($(echo "$periods" | sed 's/[,()]/ /g'))
+ start_time=${tmp_array[0]}
+ local len=${#tmp_array[@]}
+
+ stop_time=${tmp_array[$(($len-1))]}
+
+ for ((i = 1; i < $len-1; i++)); do
+ suspend_resume[$(($i - 1))]=${tmp_array[$i]}
+ done
+}
+
+start_client()
+{
+ echo "starting client ..."
+}
+
+stop_client()
+{
+ echo "stopping client ..."
+}
+
+suspend_client()
+{
+ echo "suspending client ..."
+}
+
+resume_client()
+{
+ echo "resuming client ..."
+}
+
+to_sleep=${start_time}
+sleep ${to_sleep}
+start_client
+old_time=${start_time}
+
+for ((i = 0; i < ${#suspend_resume[@]}; i += 2)); do
+ to_sleep=$((${suspend_resume[$i]} - ${old_time}))
+ sleep ${to_sleep}
+ suspend_client
+ old_time=${suspend_resume[$i]}
+
+ to_sleep=$((${suspend_resume[$(($i+1))]} - ${old_time}))
+ sleep ${to_sleep}
+ resume_client
+ old_time=${suspend_resume[$(($i+1))]}
+done
+
+to_sleep=$((${stop_time} - ${old_time}))
+sleep ${to_sleep}
+stop_client