Cover V07, I03
Article
Listing 1
Listing 2
Listing 3
Listing 4
Listing 5
Listing 6

mar98.tar


Listing 5: ObjectList

#!/bin/ksh
#
#    Class:    ObjectList
####################################################################
ObjectListId=$1
((LastItemUsed=0))
## _InsertItem() ###################################################
eval "${ObjectListId}_InsertItem()    { ITEM=\$1
List[LastItemUsed]=\$ITEM
((LastItemUsed=LastItemUsed+1))
}"
## _GetItem() ######################################################
eval "${ObjectListId}_GetItem()    { pos=\$1
echo \${List[pos]}
}"
## _GetAllItems() ##################################################
eval "${ObjectListId}_GetAllItems()    { echo \${List[*]}
}"
## _RemoveLastItem() ###############################################
eval "${ObjectListId}_RemoveLastItem()    { List[LastItemUsed-1]=" "
((LastItemUsed=LastItemUsed-1))
}"
## _Execute() ######################################################
eval "${ObjectListId}_Execute()    { CMND=\$1 ARGS=\$2
for system in \$(${ObjectListId}_GetAllItems); do
eval \${system}_\${CMND} \$ARGS
done
}"

# End of File