#/**
#         ogr GenerateSintaxMcast
#@brief   Función para generar la instruccion de ejucción la transferencia de datos multicast
#@param 1 Tipo de operacion [ SENDPARTITION RECEIVERPARTITION SENDFILE RECEIVERFILE ] 
#@param 2 Sesión Mulitcast 
#@param 3 Dispositivo (opcion PARTITION) o fichero(opcion FILE) a ser enviado.
#@param 4 Tools de clonación (opcion PARTITION)
#@param 5 Tools de compresion (opcion PARTITION) 
#@return  instrucción para ser ejecutada.
#@exception OG_ERR_FORMAT     formato incorrecto.
#@note    Requisitos: 
#@version 0.91 - Definición de FileTransfer
#@author  Antonio Doblas Viso, Universidad de Málaga
#@date    2010/05/09
#*/ ##
#         


# Si se solicita, mostrar ayuda.
if [ "$*" == "help" -o "$2" == "help" ]; then
    ogr Help "$FUNCNAME SENDPARTITION      str_sessionSERVER     str_device str_tools str_level" \
		   "$FUNCNAME RECEIVERPARTITION  str_sessionCLIENT     str_device str_tools str_level "\
		   "$FUNCNAME SENDFILE           str_sessionSERVER     str_file "\
		   "$FUNCNAME RECEIVERFILE       str_sessionCLIENT     str_file "
    return
fi

## Introducir control de errores en parametros.


#Obtenemos los datos de la sesión multicast
# Pendiente para ser procesado y/o proporcionado por ogr McastSessionCheck
PORTBASE=`echo $2 | awk -F: '{print $1}'`
[ -z $PORTBASE ] && PORTBASE=9000
METHOD=`echo $2 | awk -F: '{print $2}'`
[ -z $METHOD ] && METHOD=full-duplex
ADDRESS=`echo $2 | awk -F: '{print $3}'`
[ -z $ADDRESS ] && ADDRESS=prueba
BITRATE=`echo $2 | awk -F: '{print $4}'`
[ -z $BITRATE ] && BITRATE=70M
NCLIENTS=`echo $2 | awk -F: '{print $5}'`
[ -z $NCLIENTS ] && NCLIENTS=100
MAXTIME=`echo $2 | awk -F: '{print $6}'`
[ -z $MAXTIME ] && MAXTIME=360
# Valores estandar no configurables.
CERROR="8x8/128"


DEVICE=`echo $3`
TOOL=`echo $4`
LEVEL=`echo $5`

# opción del usuo de tuberia intermedia en memoria mbuffer.
which mbuffer > /dev/null && MBUFFER=" --pipe 'mbuffer -m 20M' " 

# Generamos la instrucción base de multicast -Envio,Recepcion-
SINTAXSERVER="udp-sender $MBUFFER --portbase $PORTBASE --$METHOD --mcast-data-address $ADDRESS --fec $CERROR --max-bitrate $BITRATE --ttl 1 --min-clients $NCLIENTS --max-wait $MAXTIME "
SINTAXCLIENT="udp-receiver $MBUFFER --portbase $PORTBASE "


case "$1" in
   SENDPARTITION)
        PROG1=`ogr GenerateSintaxForCreateImage $DEVICE " " $TOOL $LEVEL | awk -F"|" '{print $1 "|" $3}' | tr -d ">"`
		echo "$PROG1 | $SINTAXSERVER"
	;;
    RECEIVERPARTITION)
		COMPRESSOR=`ogr GenerateSintaxForRestoreImage " " $DEVICE $TOOL $LEVEL | awk -F\| '{print $1}'`
		TOOLS=`ogr GenerateSintaxForRestoreImage " " $DEVICE $TOOL $LEVEL | awk -F\| '{print $3}'`
		echo "$SINTAXCLIENT | $COMPRESSOR | $TOOLS "
	;;
	SENDFILE)
		echo "$SINTAXSERVER --file $3"
    ;;
    RECEIVERFILE)
		echo "$SINTAXCLIENT --file $3"
    ;;
   *)
   ;;
esac
