digraph Pages { node [shape=rect, style=bold, color=black, height=0.7, penwidth=2]; overlap=false; splines=true; sep="+30"; nodesep=0.9; ranksep=0.6; newrank=true; // landscape=true; // // Blocchi speciali // Scan [label="User", shape=oval]; Conn [label="User", shape=oval]; EndUser [label="User\nHandler", shape=oval]; Flash [label="FLASH", color=red, fontcolor=red, shape=none]; ScanAndAutoConnect [label="ScanAndAutoConnect()"]; Scan_f [label="Scan()"]; ScanReportHandler [label="ScanReportHandler()"]; AutoConnect [label="AutoConnect()"]; PeerConnect [label="PeerConnect()"]; AutoConnectHandler [label="AutoConnectHandler()"]; NextServerJob [label="NextServerJob()"]; // // Collegamenti tra le funzioni // Scan -> ScanAndAutoConnect; ScanAndAutoConnect -> Scan_f; Scan_f -> ScanReportHandler [penwidth=4, color=cyan]; ScanReportHandler -> AutoConnect [penwidth=4, color=cyan]; ScanReportHandler -> Flash [label="save", color=red, fontcolor=red, penwidth=2]; Flash -> AutoConnect [label="load", color=red, fontcolor=red, penwidth=2]; Conn -> AutoConnect; AutoConnect -> PeerConnect; PeerConnect -> AutoConnectHandler [penwidth=4, color=cyan]; AutoConnectHandler -> NextServerJob [penwidth=4]; NextServerJob -> PeerConnect; NextServerJob -> EndUser; { rank=same; Scan; ScanAndAutoConnect; } { rank=same; Conn; AutoConnect; } { rank=same; Flash; ScanReportHandler; } }