#!/bin/bash
# Run the c++ or java topic test

. `dirname $0`/env

# Edit parameters here:

# Big test:
# LISTENERS=10
# MESSAGES=10000
# BATCHES=20

LISTENERS=10
MESSAGES=2000
BATCHES=10

cppcmds() {
    LISTEN_CMD=topic_listener
    PUBLISH_CMD="topic_publisher -messages $MESSAGES -batches $BATCHES -subscribers $LISTENERS"
}

javacmds() {
    DEF=-Damqj.logging.level="error"
    LISTEN_CMD="qpid-run $DEF org.apache.qpid.topic.Listener"
    PUBLISH_CMD="qpid-run $DEF org.apache.qpid.topic.Publisher -messages $MESSAGES -batch $BATCHES -clients $LISTENERS"
}

case $1 in
    c) cppcmds ;;
    j) javacmds ;;
    *) cppcmds ;;
esac

for ((i=$LISTENERS ; i--; )); do
    $LISTEN_CMD  > /dev/null 2>&1 &
done
sleep 1
echo $PUBLISH_CMD $OPTIONS

STATS=~/bin/topictest.times
echo "---- topictest `date`" >> $STATS
$PUBLISH_CMD $OPTIONS | tee -a $STATS
