1/* This DOT file represents the logical interaction between 2 * the events in the system and the "state" of tlsdated. 3 */ 4digraph tlsdated { 5 graph[compound=true]; 6 7 node[style=filled,color=lightblue]; 8 9 subgraph cluster_states { 10 state_label[shape=box,style=dashed,label="States"]; 11 sleep -> wake; 12 wake -> sync; 13 sync -> save; 14 save -> sleep; 15 wake -> terminate; 16 sync -> terminate; 17 save -> terminate; 18 } 19 20 subgraph cluster_wake { 21 color=purple; 22 style=filled; 23 wake_label[shape=box,style=dashed,label="Wake Events"]; 24 periodic_local_clock_check -> wake; 25 periodic_network_sync -> wake; 26 random_sigterm -> wake; 27 random_route_change -> wake; 28 } 29 30 subgraph cluster_dbus { 31 dbus_label[shape=box,style=dashed,label="DBus Events"]; 32 dbus-> cros_shill_manager_change -> wake; 33 dbus-> cros_shill_service_change -> wake; 34 dbus -> cros_proxy_resolved -> {proxy_ok, proxy_failed}; 35 dbus -> cros_user_set_time -> save; 36 cros_user_set_time -> sync [style=dotted]; 37 get_proxy -> cros_resolve_proxy -> dbus; 38 announce -> dbus; 39 } 40 41 subgraph cluster_sync { 42 sync_label[shape=box,style=dashed,label="Network Sync"]; 43 sync -> get_proxy -> {proxy_ok, proxy_failed, proxy_timed_out} -> tlsdate; 44 tlsdate -> tlsdate_ok -> save; 45 tlsdate -> tlsdate_fail; 46 tlsdate_fail -> tlsdate [label="retry",style=dotted]; 47 tlsdate_fail -> terminate; 48 }; 49 50 subgraph cluster_save { 51 save_label[shape=box,style=dashed,label="Save to the system"]; 52 save -> { synchronize_rtc, synchronize_kernel, synchronize_disk } -> { save_ok, save_fail, save_bad_time }; 53 save_ok -> announce -> sleep; 54 save_fail -> terminate; 55 save_bad_time -> sleep; 56 } 57} 58 59