#!/bin/sh 
#
#NAME
#       ctwaitforblock - AOΥ֥å֤ꤷ֤ˤʤޤԤ
#
#SYNOPSIS
#       ctwaitforblock [--export] [1:block 0:noblock] [AO id] [timeout(sec)]
#
#DESCRIPTION
#       AO ξ֤ꤷ֤ˤʤޤԤ
#       ƤӽФ줿ǾƤ¨¤˽λ
#       1Ѳǽλ櫓ǤϤʤ
#             ѲΤϡŬڤʻǣټ¹Ԥɬפ
#       2˸ timeout ϵǽʤ
#       3˾֤ѲäȤ˥ݡ󥰤Ƥ뤿ᡢ
#             ʬ period ʤ AO ˤϻѤǤʤ
#
#       裱ˤϡ'0','1','BLOCK','NOBLOCK'ΤǤ
#
#DIAGNOSTICS
#       0 : AOϻꤷ֤Ǥ
#       1 : ꤷAO¸ߤʤ
#       2 : ץλ꤬äƤ
#
source "cabiutil.conf"

usage () {
    echo "Usage: "$0" [1:block 0:noblock] [AO id] [timeout(sec)]"  1>&2
    exit 2;
}

EXPORT=0
if [ "$1" == "--export" ] ; then
    shift
    EXPORT=1
fi

if [ -z $3 ] ; then
    echo "Usage: "$0" [1:block 0:noblock] [AO id] [timeout(sec)]"  1>&2
    exit 2;
fi

EXITFLAG=0

if ! [ -r $CABI_PROC_DIR/$2/$CABI_PROC_TERMFILE ] ; then
    usage
fi

# θ
case "$1" in
    0)
	EXIT_STATE=0
	;;
    NOBLOCK)
	EXIT_STATE=0
	;;
    1)
	EXIT_STATE=1
	;;
    BLOCK)
	EXIT_STATE=1
	;;
    *)
	usage
	;;
esac
	
    
while [ $EXITFLAG -eq 0 ] ; do 
    CMD_RET=$( head -1 $CABI_PROC_DIR/$2/$CABI_PROC_TERMFILE )
    if [ $CMD_RET -eq $EXIT_STATE ]  ; then
	EXITFLAG=1
    else 
	sleep 1
    fi
done

if [ $EXPORT -ne 0 ] ; then
    echo "RESULT=OK" 1>&2
else
    echo "RESULT=OK"
fi

exit 0
