34 lines
		
	
	
		
			872 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			872 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| digraph ft_send {
 | |
| 	fontname="Helvetica,Arial,sans-serif"
 | |
| 	node [fontname="Helvetica,Arial,sans-serif"]
 | |
| 	edge [fontname="Helvetica,Arial,sans-serif"]
 | |
| 
 | |
| 	label="FT1_Receiver";
 | |
| 	labelloc="t";
 | |
| 
 | |
| 	start [label="start   | we got FT_INIT"];
 | |
| 	fail [shape=doublecircle];
 | |
| 	done [shape=doublecircle];
 | |
| 
 | |
| 	// peer offline (how)
 | |
| 	start -> fail [label="peer offline"]
 | |
| 
 | |
| 	start -> starting [label="send FT_INIT_ACK"];
 | |
| 	starting -> starting [label="if timeout or get FT_INIT send FT_INIT_ACK"];
 | |
| 	starting -> got_data [label="got FT_DATA"];
 | |
| 	starting -> fail [label="if timeout too often"];
 | |
| 
 | |
| 	got_data -> fail [label="peer offline"];
 | |
| 
 | |
| 	subgraph cluster_data {
 | |
| 		label="for each data chunk";
 | |
| 		style=filled;
 | |
| 
 | |
| 		got_data -> wait_for_all_data [label="send FT_DATA_ACK"];
 | |
| 	}
 | |
| 
 | |
| 	wait_for_all_data -> fail [label="peer offline"];
 | |
| 	wait_for_all_data -> done [label="all chunks received and acked"];
 | |
| }
 | |
| 
 |