proactor.dot 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. digraph g
  2. {
  3. edge
  4. [
  5. fontname="Helvetica",
  6. fontsize=10,
  7. labelfontname="Helvetica",
  8. labelfontsize=10
  9. ];
  10. node
  11. [
  12. fontname="Helvetica",
  13. fontsize=10,
  14. shape=record
  15. ];
  16. initiator
  17. [
  18. label="Initiator"
  19. ];
  20. async_processor
  21. [
  22. label="Asynchronous\nOperation Processor"
  23. ];
  24. async_op
  25. [
  26. label="Asynchronous\nOperation"
  27. ];
  28. completion_queue
  29. [
  30. label="Completion\nEvent Queue"
  31. ];
  32. async_event_demuxer
  33. [
  34. label="Asynchronous\nEvent Demultiplexer"
  35. ];
  36. proactor
  37. [
  38. label="Proactor"
  39. ];
  40. handler
  41. [
  42. label="Completion\nHandler"
  43. ];
  44. initiator -> async_processor
  45. [
  46. label="uses",
  47. style="dashed"
  48. ];
  49. initiator -> async_op
  50. [
  51. label="starts",
  52. style="dashed"
  53. ];
  54. initiator -> handler
  55. [
  56. label="creates",
  57. style="dashed"
  58. ];
  59. async_processor -> async_op
  60. [
  61. label="executes",
  62. style="dashed"
  63. ];
  64. async_processor -> completion_queue
  65. [
  66. label="enqueues",
  67. style="dashed"
  68. ];
  69. async_op -> handler;
  70. async_event_demuxer -> completion_queue
  71. [
  72. label="dequeues",
  73. style="dashed"
  74. ];
  75. proactor -> async_event_demuxer
  76. [
  77. ];
  78. proactor -> handler
  79. [
  80. label="demultiplexes\n& dispatches"
  81. style="dashed"
  82. ];
  83. }