fp@1478: 
fp@1478: /* $Id$ */
fp@1478: 
fp@1478: digraph sii {
fp@1478:     node [fontname="Helvetica"]
fp@1478:     edge [fontname="Helvetica",fontsize=12]
fp@1478: 
fp@1478:     start [shape=point]
fp@1478:     start -> query
fp@1478: 
fp@1478:     query [label="Query all Mailboxes"]
fp@1478:     query -> check_read
fp@1478: 
fp@1478:     check_read [shape=diamond,label="Frames to read?"]
fp@1478:     check_read -> unset_idle_read [label="yes"]
fp@1478:     check_read -> check_idle_read [label="no"]
fp@1478: 
fp@1478:     unset_idle_read [label="Reset idle flag"]
fp@1478:     unset_idle_read -> read
fp@1478: 
fp@1478:     read [label="Read next segment"]
fp@1478:     read -> check_read_finished
fp@1478: 
fp@1478:     check_read_finished [shape=diamond,label="Frame complete?"]
fp@1478:     check_read_finished -> read [label="no"]
fp@1478:     check_read_finished -> check_write [label="yes"]
fp@1478: 
fp@1478:     check_idle_read [shape=diamond,label="Idle flag set?"]
fp@1478:     check_idle_read -> set_idle_read [label="no"]
fp@1478:     check_idle_read -> sleep_read [label="yes"]
fp@1478: 
fp@1478:     set_idle_read [label="Set idle flag"]
fp@1478:     set_idle_read -> check_write
fp@1478: 
fp@1478:     sleep_read [label="Sleep"]
fp@1478:     sleep_read -> check_write
fp@1478: 
fp@1478:     check_write [shape=diamond,label="Frames to write?"]
fp@1478:     check_write -> unset_idle_write [label="yes"]
fp@1478:     check_write -> check_idle_write [label="no"]
fp@1478: 
fp@1478:     unset_idle_write [label="Reset idle flag"]
fp@1478:     unset_idle_write -> write
fp@1478: 
fp@1478:     write [label="Write next segment"]
fp@1478:     write -> check_write_finished
fp@1478: 
fp@1478:     check_write_finished [shape=diamond,label="Frame complete?"]
fp@1478:     check_write_finished -> check_read_remaining [label="yes"]
fp@1478:     check_write_finished -> write [label="no"]
fp@1478: 
fp@1478:     check_read_remaining [shape=diamond,label="Remaining segments to read?"]
fp@1478:     check_read_remaining -> query [label="no"]
fp@1478:     check_read_remaining -> read [label="yes"]
fp@1478: 
fp@1478:     check_idle_write [shape=diamond,label="Idle flag set?"]
fp@1478:     check_idle_write -> set_idle_write [label="no"]
fp@1478:     check_idle_write -> sleep_write [label="yes"]
fp@1478: 
fp@1478:     set_idle_write [label="Set idle flag"]
fp@1478:     set_idle_write -> check_read_remaining
fp@1478: 
fp@1478:     sleep_write [label="Sleep"]
fp@1478:     sleep_write -> query
fp@1478: 
fp@1478:     /*{rank=same; check_read; check_idle_read}
fp@1478:     {rank=same; unset_idle_read; set_idle_read; sleep_read}
fp@1478:     {rank=same; check_write; check_idle_write}
fp@1478:     {rank=same; unset_idle_write; set_idle_write; sleep_write}*/
fp@1478: }