#!/bin/bash set -e export FAIRMQ_PATH=@FAIRMQ_BIN_DIR@ session="$(@CMAKE_BINARY_DIR@/fairmq/fairmq-uuid-gen -h)" chan1="data1" chan2="data2" ackChan="ack" chan1Addr="/tmp/fmq_$session""_""$chan1" chan2Addr="/tmp/fmq_$session""_""$chan2" ackChanAddr="/tmp/fmq_$session""_""$ackChan" trap 'set +e; kill -TERM $SAMPLER1_PID; kill -TERM $SAMPLER2_PID; kill -TERM $SINK_PID; wait $SAMPLER1_PID; wait $SAMPLER2_PID; wait $SINK_PID; @CMAKE_BINARY_DIR@/fairmq/fairmq-shmmonitor --cleanup --session $SESSION; rm $chan1Addr; rm $chan2Addr; rm $ackChanAddr; exit 0' TERM SINK="fairmq-ex-multiple-transports-sink" SINK+=" --id sink1" SINK+=" --verbosity veryhigh --severity debug" SINK+=" --shm-segment-size 100000000" SINK+=" --shm-monitor true" SINK+=" --session $session" SINK+=" --max-iterations 1" SINK+=" --control static --color false" SINK+=" --transport shmem" SINK+=" --channel-config name=$chan1,type=pull,method=connect,address=ipc://$chan1Addr" SINK+=" name=$chan2,type=pull,method=connect,address=ipc://$chan2Addr,transport=zeromq" SINK+=" name=$ackChan,type=pub,method=connect,address=ipc://$ackChanAddr,transport=zeromq" @CMAKE_CURRENT_BINARY_DIR@/$SINK & SINK_PID=$! SAMPLER1="fairmq-ex-multiple-transports-sampler1" SAMPLER1+=" --id sampler1" SAMPLER1+=" --session $session" SAMPLER1+=" --verbosity veryhigh --severity debug" SAMPLER1+=" --shm-segment-size 100000000" SAMPLER1+=" --shm-monitor true" SAMPLER1+=" --max-iterations 1" SAMPLER1+=" --control static --color false" SAMPLER1+=" --transport shmem" SAMPLER1+=" --channel-config name=$chan1,type=push,method=bind,address=ipc://$chan1Addr" SAMPLER1+=" name=$ackChan,type=sub,method=bind,address=ipc://$ackChanAddr,transport=zeromq" @CMAKE_CURRENT_BINARY_DIR@/$SAMPLER1 & SAMPLER1_PID=$! SAMPLER2="fairmq-ex-multiple-transports-sampler2" SAMPLER2+=" --id sampler2" SAMPLER2+=" --session $session" SAMPLER2+=" --verbosity veryhigh --severity debug" SAMPLER2+=" --shm-segment-size 100000000" SAMPLER2+=" --shm-monitor true" SAMPLER2+=" --max-iterations 1" SAMPLER2+=" --control static --color false" SAMPLER2+=" --transport zeromq" SAMPLER2+=" --channel-config name=$chan2,type=push,method=bind,address=ipc://$chan2Addr" @CMAKE_CURRENT_BINARY_DIR@/$SAMPLER2 & SAMPLER2_PID=$! wait $SAMPLER1_PID wait $SAMPLER2_PID wait $SINK_PID set +e rm $chan1Addr; rm $chan2Addr; rm $ackChanAddr exit 0