#!/bin/sh

CLIENT_BINARY_PATH=UnixDomainSockets/bin/sockClient
SERVER_BINARY_PATH=UnixDomainSockets/bin/sockServer
DAEMON_BINARY_PATH=UnixDomainSockets/bin/sockDaemon

QCLIENT_BINARY_PATH=native/dclient
QSERVER_BINARY_PATH=native/dserver
QDAEMON_BINARY_PATH=native/ddaemon

MCLIENT_BINARY_PATH=mqueue/mclient
MSERVER_BINARY_PATH=mqueue/mserver
MDAEMON_BINARY_PATH=mqueue/mdaemon


function messageNumTest
{
  loopFinished=0
  transportType="d"
  
  while [ $loopFinished -eq 0 ]; do
  echo "Which transport mechanism? [d=Domain Sockets;q=QNX Native;m=mqueue]"
    read transportType
    if [ $transportType = "d" ]; then
      loopFinished=1
    fi
    if [ $transportType = "q" ]; then
      loopFinished=1
      CLIENT_BINARY_PATH=$QCLIENT_BINARY_PATH
      SERVER_BINARY_PATH=$QSERVER_BINARY_PATH
      DAEMON_BINARY_PATH=$QDAEMON_BINARY_PATH
    fi  
    if [ $transportType = "m" ]; then
   	  loopFinished=1
      CLIENT_BINARY_PATH=$MCLIENT_BINARY_PATH
      SERVER_BINARY_PATH=$MSERVER_BINARY_PATH
      DAEMON_BINARY_PATH=$MDAEMON_BINARY_PATH
	fi   	  
  done

i=0
j=0
sizeOfMessage=30
while [ $i -lt 9 ]; do
  numberOfMessages=1000
  $SERVER_BINARY_PATH -s $sizeOfMessage &
  $DAEMON_BINARY_PATH -s $sizeOfMessage &
	while [ $j -lt 3 ]; do	
		$CLIENT_BINARY_PATH -n $numberOfMessages -s $sizeOfMessage >> $transportType.results 
		numberOfMessages=`expr $numberOfMessages \* 10`
		j=`expr $j + 1`; 
	done
	j=0
	# once we get to this line, client has exited.  
  	if [ $transportType = "d" ]; then
    	slay -f sockServer
    	slay -f sockDaemon
  	fi
  	if [ $transportType = "q" ]; then
    	slay -f dserver
    	slay -f ddaemon
  	fi
  	if [ $transportType = "m" ]; then
    	slay -f mserver
    	slay -f mdaemon
  	fi
	sizeOfMessage=`expr $sizeOfMessage \* 2`;
	i=`expr $i + 1`;
done
  
}

messageNumTest
