blob: 3a88c7e887146c36a7b22bdf76e4676d13aad675 [file] [log] [blame]
digraph {
concentrate = true;
nodesep = 1.3;
CUPS[fontname=Monospace,shape=box];
socket_bridge[label="upstart-socket-bridge",fontname=Monospace,shape=box,];
ippusb_manager[fontname=Monospace,shape=box];
ippusb_bridge[fontname=Monospace,shape=box];
Printer[shape=box];
cups_and_manager[label="Unix socket"];
cups_and_bridge[label="Unix socket"];
bridge_and_printer[label="USB connection"];
// Links CUPS to the sockets for ippusb_manager and for ippusb_bridge.
CUPS->cups_and_manager[weight=1000];
cups_and_manager->CUPS[weight=1000];
CUPS->cups_and_bridge[weight=1000];
cups_and_bridge->CUPS[weight=1000];
// Links the socket, upstart-socket-bridge, and ippusb_manager together.
cups_and_manager->socket_bridge[label="is mediated by"];
cups_and_manager->ippusb_manager;
socket_bridge->ippusb_manager[label="starts"];
ippusb_manager->cups_and_manager;
// Links the socket, ippusb_bridge, and ippusb_manager together.
ippusb_bridge->cups_and_bridge;
cups_and_bridge->ippusb_bridge;
ippusb_manager->ippusb_bridge[label="starts or keeps alive"];
// Links ippusb_bridge to the printer.
ippusb_bridge->bridge_and_printer;
bridge_and_printer->ippusb_bridge;
Printer->bridge_and_printer;
bridge_and_printer->Printer;
// Aligns the Unix sockets.
{rank=same; cups_and_manager cups_and_bridge}
// Aligns ippusb_manager and ippusb_bridge.
{rank=same; ippusb_manager ippusb_bridge}
}