#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
# 
#   http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# 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
