/* This DOT file represents the logical interaction between * the events in the system and the "state" of tlsdated. */ digraph tlsdated { graph[compound=true]; node[style=filled,color=lightblue]; subgraph cluster_states { state_label[shape=box,style=dashed,label="States"]; sleep -> wake; wake -> sync; sync -> save; save -> sleep; wake -> terminate; sync -> terminate; save -> terminate; } subgraph cluster_wake { color=purple; style=filled; wake_label[shape=box,style=dashed,label="Wake Events"]; periodic_local_clock_check -> wake; periodic_network_sync -> wake; random_sigterm -> wake; random_route_change -> wake; } subgraph cluster_dbus { dbus_label[shape=box,style=dashed,label="DBus Events"]; dbus-> cros_shill_manager_change -> wake; dbus-> cros_shill_service_change -> wake; dbus -> cros_proxy_resolved -> {proxy_ok, proxy_failed}; dbus -> cros_user_set_time -> save; cros_user_set_time -> sync [style=dotted]; get_proxy -> cros_resolve_proxy -> dbus; announce -> dbus; } subgraph cluster_sync { sync_label[shape=box,style=dashed,label="Network Sync"]; sync -> get_proxy -> {proxy_ok, proxy_failed, proxy_timed_out} -> tlsdate; tlsdate -> tlsdate_ok -> save; tlsdate -> tlsdate_fail; tlsdate_fail -> tlsdate [label="retry",style=dotted]; tlsdate_fail -> terminate; }; subgraph cluster_save { save_label[shape=box,style=dashed,label="Save to the system"]; save -> { synchronize_rtc, synchronize_kernel, synchronize_disk } -> { save_ok, save_fail, save_bad_time }; save_ok -> announce -> sleep; save_fail -> terminate; save_bad_time -> sleep; } }