diff options
Diffstat (limited to '3rdparty/asio/src/doc/overview/async_op1.dot')
-rw-r--r-- | 3rdparty/asio/src/doc/overview/async_op1.dot | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/3rdparty/asio/src/doc/overview/async_op1.dot b/3rdparty/asio/src/doc/overview/async_op1.dot new file mode 100644 index 00000000000..cbb95fb6949 --- /dev/null +++ b/3rdparty/asio/src/doc/overview/async_op1.dot @@ -0,0 +1,78 @@ +digraph g +{ + graph + [ + nodesep="0.2" + ]; + + edge + [ + fontname="Helvetica", + fontsize=10, + labelfontname="Helvetica", + labelfontsize=10 + ]; + + node + [ + fontname="Helvetica", + fontsize=10, + shape=box + ]; + + edge + [ + arrowhead="open" + ] + + // Program elements. + { + operating_system [ label="Operating System", shape=ellipse ]; + io_context [ label="io_context" ]; + io_object [ label="I/O Object\ne.g. socket" ]; + your_program [ label="Your Program" ]; + your_completion_handler [ label="Your Completion Handler" ]; + } + + // Owning relationships. + { + edge [ arrowtail="diamond" ]; + your_program:e -> your_completion_handler:n; + your_program:w -> io_object:nw; + your_program:se -> io_context:ne; + } + + // Non-owning relationships; + { + io_object:sw -> io_context:w; + } + + // Visible actions. + { + edge [ style="dashed", color="#808080" ]; + + // Forward actions. + { + your_program:sw -> io_object:n [ label="1" ]; + io_object:s -> io_context:nw [ label="2" ]; + io_context:s -> operating_system:n [ label="3" ]; + } + } + + // Invisible actions. + { + edge [ style="invis" ]; + + // Forward actions. + { + your_program:s -> io_context:n [ label="5" ]; + } + + // Reverse actions. + { + edge [ arrowhead="none", arrowtail="open" ]; + //io_context:s -> operating_system:n [ label="4" ]; + your_completion_handler:s -> io_context:e [ label="6" ]; + } + } +} |